MysqlConnectionPoolDataSource()
개체를 사용하고 있으므로 Java와 풀링 된 연결을 사용하고 싶습니다 (스레드 당 하나의 연결을 만드는 것이 비용이 많이 들기 때문에). 나는 스레드를 통해 내 데이터 소스를 유지합니다. 그래서, 난 단지 같은 응용 프로그램 전체에서 하나의 데이터 소스를 사용하고 있습니다 :Java PooledConnections를 올바르게 사용하고 있습니까?
PooledConnection connect = dataSource.getPooledConnection();
Connection sqlConnection = connect.getConnection();
Statement state = sqlConnection.createStatement();
ResultSet result = state.executeQuery("select * from someTable");
// Continue processing results
것 같아요 : 지금은 내 데이터 소스가 만든 것을
startRegistry(); // creates an RMI registry for MySQL
MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource();
dataSource.setUser("username");
dataSource.setPassword("password");
dataSource.setServerName("serverIP");
dataSource.setPort(3306);
dataSource.setDatabaseName("dbname");
InitialContext context = createContext(); // Creates a context
context.rebind("MySQLDS", dataSource);
, I는 각각 별도의 스레드에서 다음을하고 있어요 내가 혼동스러워하는 것은 dataSource.getPooledConnection();
의 전화 번호입니다.
정말 풀링 된 연결을 가져 오나요? 그리고이 스레드는 안전합니까? PooledConnection에 notify() 및 wait()와 같은 메서드가 있다는 것을 알았습니다. 내가 생각하는대로 수행하고 있다고 생각하지 않는다는 것을 의미합니다.
또한 어떻게해야합니까? 연결?
나는 내 자신을 굴리는 것이 더 유익한 지 궁금해 지지만 모든 것에 익숙해지기 때문에이 경우 휠을 재발 명하고 싶지는 않습니다. :)
감사합니다.
모든 Java 클래스는 java.lang.Object에서 상속되므로 알림 및 대기를 갖습니다. 그것들을 실제로 사용하는 것은 매우 드뭅니다. –
그래, 내가 자바 롤백에 조금 익숙해 ... 나는 그것에게 소용돌이를주고있다. – Polaris878
다음은 Apache DBCP의 예제이다 : http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/ doc/PoolingDataSourceExample.java?view = co –