1.1 连接池技术:
现在JDBC操作过程中,最浪费资源的步骤是创建数据库连接。但是在操作完成数据库之后又必须关闭数据库连接。
在使用JDBC时关闭数据库连接就是销毁数据库连接。
连接池:存放连接的一个容器。使用连接池容器可以实现对数据库连接对象的创建,维护和管理。
当我们再进行数据库操作时,可以从连接池获得一个数据库连接对象 ,进行与数据库之间的CRUD操作,操作完成之后释放数据库连接。可以有效的减少创建数据库连接对象的次数。
1.2 数据源对象:
数据源对象:是Java程序中连接池技术的实现类
在Java中使用数据源对象创建,维护和管理数据库连接对象。
现在使用第三方的连接池技术。
1.3 操作步骤:
1.3.1:导入DBCP第三方连接池的jar文件
1.3.2:在src目录下新建mysql.properties属性文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/heda3?useUnicode=true&characterEncoding=utf8
username=root
password=root
maxActive=50
maxIdle=20
maxWait=60000
1.3.3:在src/util目录下新建DBCPUtil.java工具
package edu.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DBUtil {
private static DataSource ds;
private static Connection conn;
static{
Properties properties = new Properties();
InputStream is = DBUtil.class.getResourceAsStream("/mysql.properties");
try {
properties.load(is);
// 读取资源文件的内容
ds = BasicDataSourceFactory.createDataSource(properties);
// 创建数据源对象
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException {
if (conn == null || conn.isClosed()) {
conn = ds.getConnection();
}
return conn;
}
public static void closeConn() {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
conn = null;
}
}
}