当我们的应用频繁创建数据库连接时,会消耗大量系统资源,降低应用程序的性能。为了解决这一问题,我们可以使用数据库连接池。其工作原理是:首先在连接池中建立一定数量的连接,当程序需要访问数据库时,会从池中取出一个空闲连接,然后会将此连接锁定,标记为忙,当本次连接执行结束时,会将此连接放回池中,并标记为空闲,当池中没有空闲连接时,程序会根据配置再创建指定数目的数据库连接。
在Tomcat服务器上构建MySQL数据库的连接池需要做以下配置:
1.在Tomcat服务器安装目录的lib目录下,放一个数据库连接驱动jar包,如 mysql-connector-java-5.1.40.jar 。
2.在Tomcat服务器安装目录的config下context.xml配置文件下,加入以下代码
<Resource name="jdbc/mysql" auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db?autoReconnect=true"/>
注意:username,password,url这些参数要根据自己的数据库来改。
3.在Tomcat服务器安装目录的config下web.xml配置文件下,加入以下代码
<resource-ref>
<description>conn</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4.连接数据库的代码
package com.yykj;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.*;
public class MySQLDBCon {
public static Connection getConnection(){
Connection connection = null;
try{
InitialContext context = new InitialContext();//通过这个类访问配置文件context.xml中指定的JNDI数据源
DataSource dataSource = (DataSource)context.lookup("java:comp/env/jdbc/mysql");//查找匹配的JNDI名字,获得数据源
connection = dataSource.getConnection();//从数据源中获得数据库链接
} catch (Exception e){
e.printStackTrace();
}
return connection;
}
}