Tôi muốn sử dụng các kết nối được gộp chung với Java (vì sẽ tốn kém khi tạo một kết nối cho mỗi chuỗi) vì vậy tôi đang sử dụng đối tượng MysqlConnectionPoolDataSource()
. Tôi kiên trì nguồn dữ liệu của mình trên các chủ đề. Vì vậy, tôi chỉ sử dụng một nguồn dữ liệu trong suốt ứng dụng như thế này:Tôi có sử dụng Java PooledConnections chính xác không?
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);
Bây giờ tôi đã nguồn dữ liệu của tôi tạo ra, tôi đang làm như sau trong từng chủ đề riêng biệt:
PooledConnection connect = dataSource.getPooledConnection();
Connection sqlConnection = connect.getConnection();
Statement state = sqlConnection.createStatement();
ResultSet result = state.executeQuery("select * from someTable");
// Continue processing results
Tôi đoán những gì tôi đang bối rối là cuộc gọi tới dataSource.getPooledConnection();
Điều này có thực sự tìm nạp kết nối được gộp lại không? Và chuỗi này có an toàn không? Tôi nhận thấy rằng PooledConnection có các phương thức như thông báo() và wait() ... có nghĩa là tôi không nghĩ rằng nó đang làm những gì tôi nghĩ rằng nó đang làm ...
Ngoài ra, khi nào và làm thế nào tôi nên phát hành kết nối?
Tôi tự hỏi liệu sẽ có ích hơn khi cuộn của riêng mình vì sau đó tôi sẽ quen thuộc hơn với mọi thứ, nhưng tôi thực sự không muốn phát minh lại bánh xe trong trường hợp này :).
Cảm ơn SO
Tất cả các lớp Java đều thông báo và chờ, vì chúng được kế thừa từ java.lang.Object. Nó là rất hiếm để thực sự sử dụng chúng, mặc dù. –
Vâng tôi là một chút mới với java lol ... Tôi cho nó một whirl – Polaris878
Đây là một ví dụ từ Apache DBCP: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/ doc/PoolingDataSourceExample.java?view = co –