1. 数据库连接池
1. 概念:用来存放数据库连接的一个容器(集合)
当系统初始化完成,容器被创建,容器中会申请连接对象,当用户访问数据库时,会从容器中获取对象,对象使用完毕,会释放到容器
2. 优点:
1. 节约资源
2. 用户访问高效
3. 实现:
1. 标准接口:DataSource javax.sql包下的接口
1. 方法 :
* 获取连接: Connection getConnection()
* 归还连接: Connection.close() 从连接池获取的Connection对象,调用Connection.close()方法,不会关闭连接,会将连接对象归还给连接池
2. 一般不自己实现这一接口,由数据库厂商实现
1. C3P0:数据库连接池技术
2. Druid:数据库连接池实现技术,由Alibaba提供
3. C3P0:数据库连接池技术
1. 步骤
1. 导入两个jar包:c3p0-0.9.5.2.jar mchange-commons-java-0.2.11.jar
2. 定义配置文件:
1. 文件名:c3p0.properties 或 c3p0-config.xml
2. 路径:直接放在项目的src目录下
3. 创建核心对象:数据库连接池对象 ComboPool
4. 获取连接:getConnection()
4. Druid:数据库连接池实现技术,由Alibaba提供
1. 步骤:
1. 导入jar包:druid-1.0.9.jar
2. 定义配置文件
1. 是properties类型的
2. 可以是任意名称,任意路径
3. 获取数据库连接池对象:通过工厂类获取 DruidDataSourceFactory
4. 获取连接:getConnection()
2. Spring JDBC :JDBC Template
1. 简介:Spring框架对JDBC的简单封装。提供了JDBCTemplate对象简化JDBC的开发。
2. 步骤;
1. 导入jar包
2. 创建对象:JDBCTemplate。依赖于数据源DataSource
JDBCTemplate template = new JDBCTemplate(dataSource)
3. 调用JDBCTemplate的方法完成“增、删、改、查”的操作:
1. update():执行DML语句:增、删、改
2. queryForMap():查询结果,将结果封装为map集合,结果集为一行
3. queryForList():查询结果,将结果封装为list集合,先将结果封装为map,再将map封装为lsit
4. query():查询结果,将结果封装为JavaBean对象
1. 使用BeanPropertyRowMapper实现类,完成数据到JavaBean的自动封装
2. new BeanPropertyRowMapper<类型>(类型.class)
5. queryForObject():查询结果,将结果封装为对象,一般用于聚合函数的查询