我试图从Oracle DB中显示一些数据。 它需要超过4秒才能获得连接。要读取整个数据,它只需要1-2秒。那么我怎样才能改善整体响应时间。
我试过这种方式
公共类ConnectionManager {
public static Connection getConnection() {
Connection conn = null;
try {
OracleDataSource ods = new OracleDataSource();
java.util.Properties prop = new java.util.Properties();
prop.setProperty("MinLimit", "2");
prop.setProperty("MaxLimit", "10");
ods.setURL(DBProps.getProperty("oracle.url"));
ods.setConnectionCachingEnabled(true);
ods.setConnectionCacheProperties (prop);
ods.setConnectionCacheName("Cache");
conn = ods.getConnection(DBProps.getProperty("oracle.user"), DBProps.getProperty("oracle.password"));
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
并以传统方式尝试
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(DBProps.getProperty("oracle.url"), DBProps.getProperty("oracle.user"), DBProps.getProperty("oracle.password"));
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
答案 0 :(得分:0)
如果您可以使用Java EE,例如Tom EE,我建议您使用JDBC连接池进行调查。
答案 1 :(得分:0)
如果要将代码部署到Web服务器或应用程序服务器,请尝试创建连接池并在不同的数据库调用之间重用它。
如果您运行的代码没有任何服务器容器,请尝试将您自己的Connection对象缓存为静态变量。
或者您甚至可以考虑使用弹簧框架工作,因为它可以在任何应用程序服务器上为您提供出色的事务管理