近来由于课程需要,对Tomcat数据库连接池进行配置,博主分别使用Eclipse和IDEA开发环境,二者配置有所不同,遇到了很多坑,网上的各种方案也是千奇百怪,下面分别给出我的方法:
1.Eclipse:
0.添加jdbc的jar包到tomcat安装路径的lib目录下(工程引入也可以);
1.需要在Eclipse的Servers中的下面两个文件进行内容添加:
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;
}
}
详细的数据库连接池知识内容大家可以在网上查阅, 这里只是记录我的连接过程,因为遇到太多坑了…完。