我们有一个复杂的应用程序,具有广泛的数据库使用该应用程序仅使用普通的JDBC连接,因为我看到大多数地方我们总是重新创建一个PreparedStatement运行sql,即使我们多次运行相同的sql。 有一个JDBC连接的包装器,如
public class ConnectionWrapper {
protected Connection connection;
public PreparedStatement getPreparedStatement(String sql) {
return connection.prepareStatement(sql);
}
如果不重写整个应用程序,最好在包装器中添加一个缓存,每个sql存储PreparedStatement
,我们从缓存中返回语句。当我们关闭连接时,我们也会清理缓存。
你认为在这里以编程方式使用像EHCache这样的东西是个好主意吗?
更新: 在整个会话期间使用相同的连接,获得新的物理连接将触发缓存清理