数据库连接池
Spring JDBC :JDBC Template
数据库连接池
1. 概念:其实就是一个容器集合,存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器
2. 好处:
1.节约资源
2.用户访问高效
3.实现:
1. 标准接口:DataSource javax.sql 包下
1. 方法:
* 获取连接:getConnection()
* 归还连接:如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会关闭连接,而是归还连接
2.我们一般不去实现它,由数据厂商来实现
1.C3P0: 数据库连接池技术
2、Druid:数据库连接池实现技术,由阿里巴巴提供的
4. C3P0:数据库连接池技术
* 步骤
1. 导入jar 包(两个):
1. c3p0-0.9.5.5.jar
2. mchange-commons-java-0.2.19.jar (依赖的jar 包)
3. 不要忘记导入数据库驱动jar包
2. 定义配置文件:
* 名称:c3p0.properties or c3p0-config.xml
* 路径:直接将文件放在src目录下即可
3. 创建核心对象 数据库连接对象 ComboPooledDataSource
4. 获取连接: getConnection
5. Druid: 数据库连接池实现技术,由阿里巴巴提供
* 步骤:
1. 导入jar 包
2. 定义配置文件:
* 是properties形式的
* 可以叫任意名称,放在任意目录下
3. 加载配置文件,properties
4. 获取数据库连接池对象:通过工厂来获取,DruidDataSourceFactory
5. 获取连接:getConnection
Spring JDBC
* spring 框架对JDBC的简单封装。 提供了一个JDBCTemplate对象简化的JDBC的开发
* 步骤:
1.导入jar包
2. 创建Jdbc Template对象,依赖于数据源DataSource
* jdbcTemplate template = new jdbctempalte(ds)
3. 调用jdbcTemplate的方法来完成CRUD 的操作
* update():执行DML语句。增删改语句
* queryForMap(): 查询结果将结果封装成map集合
查询的结果集长度只能是1,将列名作为key,值作为value
* queryForList():查询结果将结果封装成list集合
* query():查询结果将结果封装成javaBean对象
* query的参数:RowMapper
* 一般我们使用BeanPeopertyRowMapper实现类,可以完成数据到JavaBean的自动封装
* queryForObject: 查询结果将结果封装成对象
* 一般用于聚合函数的查询