数据库连接池
1、 概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问之后,会将连接对象归还给容器。
2、好处:
①节约资源;
②用户访问高效;
3、实现:
①标准接口:DataSource javax.sql包下的
1.方法:
*获取连接:getConnection();
*归还连接:Connection.close();
2.一般我们不去实现它,有数据库厂商来实现
*C3P0:数据库连接池技术
*Druid:数据库连接池实现技术,阿里巴巴提供。
3、C3P0:数据库连接池技术
*步骤:
1,导入jar包;
2.定义配置文件:
*名称: c3p0.properties 或者 c3p0-config.xml
*路径:直接将文件放在src目录下即可。
3.创建数据库连接池对象 ComboPooledDataSource
4.获取连接:getConnection
*代码:
// 创建数据库连接对象
DataSource ds=new ComboPooledDataSource;
// 获取连接对象
Connection conn=ds.getConnection();
5、Druid:数据库连接池实现技术
*步骤
1.导入jar包;
2.定义配置文件:
*是propertier形式的,可以叫任意名称,放在任何路径下。
3.加载配置文件;
4.获取数据库连接池对象:通过工厂类来获取 DruidDataSourceFactor
5.获取连接对象Connection
6、定义工具类
1.定义一个类JDBCUtils
2.提供静态代码块加载配置文件,初始化连接对象
3.提供方法:
①获取连接方法:通过数据库连接池获取
②释放资源
③获取连接池方法
Spring JDBC
*Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发。
*步骤:
①导入jar包;
②创建JdbcTemplate对象,参数为DataSource:JdbcTemolate template=new JdbcTemplate(ds);
*条用JdbcTemplate的方法来完成CRUD的操作。
①update():执行DML语句。增删改语句。
②queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value,将这条记录封装为一个map集合。
*注意:这个方法查询的结果集长度只能是1;
③queryForList():查询结果将结果集封装为List集合。
*注意:将每一条记录封装为一个Map集合,再将Map集合封装到List集合中;
④query()查询结果,将查询结果封装为JavaBean对象
*query的参数:RowMapper
*一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装。
*new BeanPropertyRowMapper<类型>(类型.class)
⑤queryForObject:查询结果,封装为对象
*一般用于聚合函数的查询
|