数据库连接池(2学时)
上一节
下一节
问题01:数据库连接池有什么作用?
问题02:数据库连接池javax.sql.DataSource的重要API。
JDBC提供了javax.sql.DataSource接口
public static DataSource ds = null; 核心问题
Connection javax.sql.DataSource.getConnection()
问题03:数据库连接池的手动实现。
使用线程安全的Vector容器存放Connection(C3P0使用的是LinkedList)
private Vector<Connection> freeConn = new Vector<Connection>(); private Vector<Connection> userConn = new Vector<Connection>(); private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
https://www.likecs.com/show-203938020.html
问题04:DBCP数据库连接池使用
1. 导入jar包
2. 数据库信息配置
3. 初始化数据源
使用配置文件
ds = BasicDataSourceFactory.createDataSource(prop);
手动配置
public static DataSource ds = null; static { // 获取DBCP数据库连接池实现类对象 BasicDataSource bds = new BasicDataSource(); // 设置连接数据库需要的配置信息 bds.setDriverClassName("com.mysql.cj.jdbc.Driver"); bds.setUrl("jdbc:mysql://localhost:3306/jdbc?serverTimezone=GMT%2B8"); bds.setUsername("root"); bds.setPassword("root"); // 设置连接池的初始化连接参数 bds.setInitialSize(5); ds = bds; }
4. 获得数据源和连接
获得数据源
public static DataSource getDs() { return ds; }
获得连接
Connection conn = ds.getConnection();
问题05:c3p0数据库连接池的使用
1. 导入jar包
2. 数据库信息配置
3. 初始化数据源
src根目录下创建一个c3p0-config.xml文件
public static DataSource ds = new ComboPooledDataSource();
4. 获得数据源和连接
同上
问题06:Druid数据库连接池的使用
1. 导入jar包
2. 数据库信息配置
3. 初始化数据源
ds = DruidDataSourceFactory.createDataSource(pro);
4. 获得数据源和连接
同上