使用TomcatDBCP的java JDBC需要Tomcat自己的/lib中的JDBC驱动程序
我有一个简单的servlet,它使用TomcatDBCP获取连接
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
Connection conn = null;
try {
conn = createConnection();
....
}
public Connection createConnection() throws SQLException {
Connection conn = null;
DataSource datasource = new DataSource();
PoolProperties p = new PoolProperties();
p.setUrl("jdbc:oracle:thin:@localhost:1521:XE");
p.setDriverClassName("oracle.jdbc.OracleDriver");
p.setUsername("SYSTEM");
p.setPassword("password");
datasource.setPoolProperties(p);
try {
conn = datasource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
它需要ojdbc6。jar在tomcat的/lib文件夹中,而不是在WEB-INF/lib中
- 为什么web应用程序自己的lib文件夹不能工作李>
- 根据答案here,将驱动程序代码与公共类加载器绑定会导致内存泄漏。如果为真,解决方法是什么李>
# 1 楼答案
第一个问题的答案就是你在第二个问题中提到的链接。这就是为什么您应该将JDBC驱动程序放在
/lib
中。通常人们建议不要使用/lib
,但JDBC驱动程序是一个很大的例外对于第二个问题,解决方法是将其放在Tomcat的shared/lib文件夹中。就这样。这就是解决办法