0

我已将 tomcat-dbcp.jar 从 tomcat lib 目录复制到 jdk 的 jre\lib\ext 目录,并且在我的应用程序的 context.xml 文件中编码如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/Conn_Pool">

<Resource name="jdbc/murach" auth="Container"
  maxActive="100" maxIdle="30" maxWait="10000"
  username="root" password="1234"
  driverClassName=" com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/murach"
  logAbandoned="true" removeAbandoned="true"
  removeAbandonedTimeout="60" type="javax.sql.DataSource" 
/>

</Context>

和一个类 ConnectionPool.java 如下所示:

package data;

import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.*;
import javax.sql.DataSource;
import javax.naming.InitialContext;


public class ConnectionPool 
{
private static ConnectionPool pool=null;
private static DataSource dataSource=null;

private ConnectionPool()
{
    try
    {
        InitialContext ic = new InitialContext();
        dataSource = (DataSource)ic.lookup("java:/comp/env/jdbc/murach");
    }
    catch(Exception e)
     {
         e.printStackTrace();
     }
}


public static ConnectionPool getInstance()
{
    if(pool==null)
    {
        pool= new ConnectionPool();
    }

    return pool;
}

public Connection getConnection()
{
    try
    {
        return dataSource.getConnection();
    }

    catch(SQLException sqle)
            {
                sqle.printStackTrace();
                return null;
            }
}

public void freeConnection(Connection c)
{
    try{
        c.close();
    }
    catch(SQLException sqle){
        sqle.printStackTrace();
    }
}
}

但公共连接 getConnection() 不起作用。
它不返回 dataSource.getConnection(); 在 try 块内。相反,它进入了 catch 块

4

0 回答 0