JDBC数据源连接池(3)---Tomcat集成DBCP
Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池。在使用中,只要进行相应配置即可。
首先,确保Web项目的WebContent--->WEB-INF--->lib文件夹中有mysql数据库驱动jar包。
其次,配置数据源的xml文件。如果配置信息写在tomcat--->con--->context.xml中,那么所有应用都能使用此数据源;如果是在当前应用的WebContent--->META-INF中创建context.xml,并编写数据源,那么只有当前应用可以使用。本文选择了后一种方式,context.xml配置信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mydsp" auth="Container" type="javax.sql.DataSource"
maxActive="10" maxIdle="10" maxWait="10000"
username="root" password="2017" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/itszt2" />
</Context>
再次,编写Util_4_JDBC_DBCP_TOMCAT数据源连接池工具类,代码内容如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Tomcat内置的DBCP数据源连接池
*/
public abstract class Util_4_JDBC_DBCP_TOMCAT {
private static DataSource dataSource=null;
static {
try {
Context context=new InitialContext();
dataSource= (DataSource) context.lookup("java:comp/env/jdbc/mydsp");
} catch (NamingException e) {
e.printStackTrace();
}
}
/**
* 打开与数据库的连接
* @return 一个连接对象
*/
public static Connection openConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//释放资源
public static void release(Connection connection, Statement statement, ResultSet resultSet){
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
最后,在com.itszt.demo文件夹中的LoginServlet.java的Servlet文件中,将产生Connection对象的方式修改为Tomcat内置DBCP连接池方式即可。