我有一个独立的Java程序,不涉及使用Oracle DB connection和BoneCP的应用程序服务器/会话。我需要从不同的方法运行不同的查询,并且我不希望在每次调用中都创建DB连接/池。
我有一个在其中创建连接池的DBManager类。我想知道如何准确地重用为运行来自不同类/方法的多个查询而创建的连接对象。
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
// setup the connection pool
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl( "jdbc:oracle:thin:@"+prop.getProperty(DB_HOST)+":"+prop.getProperty(DB_PORT)+":"+prop.getProperty(DB_INSTANCE)); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb
config.setUsername( prop.getProperty(APP_DB_USER));
config.setPassword(prop.getProperty(APP_DB_PWD));
config.setMinConnectionsPerPartition(5);
config.setMaxConnectionsPerPartition(10);
config.setPartitionCount(1);
connectionPool = new BoneCP(config); // setup the connection pool
connection = connectionPool.getConnection(); // fetch a connection如果我调用这个类的对象/即使它是一个静态类,CP不是每次都会被创建吗?我如何通过只创建一次连接来重用连接对象?
提前谢谢。
发布于 2017-07-21 00:06:35
您最好的选择是使用单例类。
下一个最好的选择是在服务器(例如tomcat)上运行您的java程序,让服务器为您处理数据库连接池。
您可能还想尝试hikaricp连接池,因为它是一个非常快速和干净的连接池实现!
https://stackoverflow.com/questions/45210815
复制相似问题