数据库连接池
概念:其实就是一个容器(集合),存放数据库连接的容器
当系统初始化后,容器被创建,容器中的容器对象申请一堆的连接对象,当用户来访问数据库时,从容器中获取连接对象,而将这些对象进行存放的容器,称之为连接池
好处:节约资源,提高用户的访问效率
实现:标准的接口:DataSource javax.sql下的,mysql提供的规范接口
获取方式:
1.获取连接 getConnection()
2.归还连接:Connection.close(),如果连接对象是从连接池中获取的,那么就就不在叫做关闭数据库的连接,而是向连接池中进行归还连接
3.连接池的实现一般是厂家进行实现,提供jar包的形式进行给用户提供依赖,
目前的数据库连接池比较成熟的技术有:
c3p0:数据库连接池技术,
Druid:数据库连接池实现技术,阿里巴巴进行实现
C3p0:
1.导入jar包(两个)c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,数据库的驱动jar包
2.定义配置文件:
名称特别的规定,C3p0.properties或者c3p0-config.xm
路径:一般在src目录
3.创建核心对象:数据库连接池对象ComboPooledDataSource–用来获取连接对象
4.获取连接对象,getCOnnection
//1.创建数据库连接池对象
DataSource ds = new ComboPooledDataSource();
//2. 获取连接对象
Connection conn = ds.getConnection();
Druid:
1.导入jar包:druid-1.00.9.jar
2.定义配置文件:
配置文件的形式只能是properties的形式
名称:任意名称,后缀名不能被改变
3.加载配置文件,properties
4.获取数据库连接池对象:通过工厂模式进行获取连接池对象 DruidDataSourceFactory.CreateDataSource(pro);
5.获取连接 getConnection()
SpringJDBC:
Spring框架对JDBC的简单封装,提供了一个JDBCTemplate对象简化JDBC的开发
1.导入jar包创建jdbcTemplate对象。依赖于数据源DataSource,JdbcTemplate template=new JdbcTemplate(ds);
2.定义sql语句
3.调用jdbcTemplate的方法来完成CRUD的操作
update():执行DML语句,增删,改语句
queryForMap():查询结果将结果封装为map集合,列名=key,值=value,
注意:该方法查询的结果集长度只能是1
queryForList();查询结果将结果封装为list集合,底层的实现是先将结果集封装为map集合,再将map集合装载到list集合中去
query();查询结果,将结果封装为JavaBean对象,
query的参数:rowMapper
一般我们使用BeanPropertyRowMapper实现类,进行Javabean的封装