连接池原理:重用池子里的连接对象
连接池使用的原因:因为多线程并发,数据库连接上线只有300--500,同时操作数据库就需要使用连接池技术
创建常量池必须的流程:
1、maven配置 dbcp jar包
2、创建basicdatasource连接池管理员对象
3、设置四个连接数据库连接的必备参数 dirverClassName Url userName passWord
两个 连接池的管理员策略参数 一是 连接对象的数量setInitialSize() 二是最大的连接数量 setMaxActive()
4、通过basicdatasource连接池管理员对象 获得连接对象 connection
5、获得statement对象操作数据库
----------------------------------代码区域---------------------------------------------------
package demo05;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.dbcp.BasicDataSource;
public class TestDemo {
public static void main(String[] args) {
String driverClassName = "com.mysql.cj.jdbc.Driver" ;
String url = "jdbc:mysql://localhost:3306/demo01" ;
String username = "root" ;
String password = "zhaxi2727" ;
//创建连接池管理员对象
BasicDataSource bds = new BasicDataSource() ;
//设置必须按参数 4个
bds.setDriverClassName(driverClassName) ;
bds.setUrl(url) ;
bds.setUsername(username) ;
bds.setPassword(password) ;
//设置连接池的管理策略参数
//启动时连接池中连接对象的数量
bds.setInitialSize(2) ;
//设置最大的连接对象
bds.setMaxActive(2) ;
Connection con = null ;
try {
//得到连接对象 连接数据库
con = bds.getConnection() ;
//获得statement 对象 操作数据库
Statement sta = con.createStatement() ;
//sql语句
String sql = "select 'hello' from dual" ;
//得到结果集
ResultSet rs = sta.executeQuery(sql) ;
while(rs.next()){
String str = rs.getString(1) ;
System.out.println(str);
}
rs.close() ;
rs.close() ;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//在此不是关闭, 是归还
//把资源归还供其他使用
con.close() ;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
网友评论