有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用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中

  1. 为什么web应用程序自己的lib文件夹不能工作
  2. 根据答案here,将驱动程序代码与公共类加载器绑定会导致内存泄漏。如果为真,解决方法是什么

共 (1) 个答案

  1. # 1 楼答案

    第一个问题的答案就是你在第二个问题中提到的链接。这就是为什么您应该将JDBC驱动程序放在/lib中。通常人们建议不要使用/lib,但JDBC驱动程序是一个很大的例外

    对于第二个问题,解决方法是将其放在Tomcat的shared/lib文件夹中。就这样。这就是解决办法