Eclipse和IDEA环境下配置Tomcat数据库连接池(排坑)

近来由于课程需要,对Tomcat数据库连接池进行配置,博主分别使用Eclipse和IDEA开发环境,二者配置有所不同,遇到了很多坑,网上的各种方案也是千奇百怪,下面分别给出我的方法:

1.Eclipse:

0.添加jdbc的jar包到tomcat安装路径的lib目录下(工程引入也可以);

1.需要在Eclipse的Servers中的下面两个文件进行内容添加:

Eclipse和IDEA环境下配置Tomcat数据库连接池(排坑)_第1张图片
context.xml添加:

<Resource
     name="jdbc/mysql"//这里可以自定
     type="javax.sql.DataSource"//不用更改
     maxActive="4"//可同时为连接池分配的活动连接实例的最大数
     maxIdle="2"//连接池中可空闲连接的最大数
     username="root"//数据库用户名
     maxWait="1000"//没有连接时,连接池抛出异常前最大等待毫秒数
     driverClassName="com.mysql.jdbc.Driver"//JDBC驱动名,不同数据库不同
     password="123456"//数据库密码
     url="jdbc:mysql://localhost:3306/javaee" />//传递给JDBC驱动程序的数据库URL

web.xml添加:(注意这里的web.xml也可以是你工程lib下的web.xml)
注意:这里在servlet3.0后 可以忽略web.xml的配置

  <resource-ref>
  <description>DB Connection</description>
    <res-ref-name>jdbc/mysql</res-ref-name> //这里需要和context.xml对应
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

获取数据库连接

/*
    获取数据库连接
 */
public class DBUtil {
    public static Connection getConnection() throws NamingException, SQLException {
        Connection conn = null;
        InitialContext ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mysql");//注意这里和context对应name
        conn = ds.getConnection();
        return conn;
    }
}

2.IDEA:

0.添加jdbc的jar包到tomcat安装路径的lib目录下(工程引入也可以,但最好放在lib目录下);

1.在工程下web下新建META-INF目录,创建context.xml,并添加如下内容:

<?xml version="1.0" encoding="utf-8" ?>
<Context reloadable="true">
    <Resource
            name="jdbc/mysql"
            type="javax.sql.DataSource"
            maxTotla="100"
            maxIdle="30"
            maxWaitMillis="10000"
            username="root"
            driverClassName="com.mysql.jdbc.Driver"
            password="123456"
            url="jdbc:mysql://localhost:3306/javaee" />
</Context>

其实我在写的时候web.xml是不需要配置任何就ok的(应该是servlet3.0的机制),当然如果大家不行的话可以添加和Eclipse一样的内容试一试。

获取数据库连接

/*
    获取数据库连接
 */
public class DBUtil {
    public static Connection getConnection() throws NamingException, SQLException {
        Connection conn = null;
        InitialContext ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mysql");
        conn = ds.getConnection();
        return conn;
    }
}

详细的数据库连接池知识内容大家可以在网上查阅, 这里只是记录我的连接过程,因为遇到太多坑了…完。

你可能感兴趣的:(javaEE)