**JDBC连接池 & JDBC Template *

数据库连接池:

1. 概念:其实就是一个容器(集合),存放数据库连接的对象。
	* 当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问之后,会将连接对象归还给容器。
2.好处:
	1. 节约资源
	2. 重复利用连接,用户访问高效
	3. 实现:
		* 接口:DataSoure    javax.sql包下的
		* 方法:获取方法: getConnection
3. 归还连接:如果连接对象Connection是从连接池中获取的,那么调用的Connection.close()方法,则不会再关闭连接了。而是归还连接。
4.实现:
	* 一般我们不去实现它,有数据库厂商实现(下面的连接池是第三方实现的)
	1. C3P0:数据库连接池技术
	2. Druid:数据库连接池实现技术,由阿里巴巴提供
	3. C3P0:数据库连接池技术(这是别人实现的连接池,所以肯定是要导入jar包)
5. 步骤:
	1. 导入jar包:c3p0-0.9.2.jar    和依赖包mchange-commons-java-0.2.12.jar
	2. 定义配置文件:
	3. 名称:c3p0.properties 或者c3p0-config.xml
	4. 路径:直接将文件放在src目录下即可。
	5. 定义参数可以硬定义和软定义,硬定义可以看说明,建议使用软定义,即定义配置文件来导入参数。

	6. 创建对象(c3po)  数据库连接池对象  ComboPooledDataSource
	7. 使用第三方连接池:
		1.导入jar 包
		2.设置一些参数
		3.创建连接池对象
		4.获取连接:getConnection
6.Druid:数据库连接池实现技术,由阿里巴巴提供的
	1. 步骤:
		1. 导入jar包   druid-1.0.9.jar
	2. 定义配置文件:
		* 是properties形式的
		* 可以叫任意名称,可以放在任意目录下。
	3. 加载配置文件。Properties
	4. 获取数据库连接池对象:通过工厂来获取   DruidDataSourceFactory
	5. 获取连接:getConnection
		1. 定义工具类:
		2. 定义一个类JDBCUtils
		3. 定义参数可以硬定义和软定义,硬定义可以看说明,建议使用软定义,即定义配置文件来导入参数。
		4. 为什么要放在src目录下,因为该目录可以通过类加载器获取
		5. Factory结尾的类一般都是来创建对象的。

Spring JDBC:

1. Spring JDBC:
	* Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
2. 步骤:
	1.导入jar包
	2.创建JDBCTemple对象,依赖于数据源DateSource
	3.jdbcTemplate template =newjdbcTemplate(ds);
3.调用jdbcTemplate的方法来完成CRUD的操作:
	1. update():执行DML语句。增、删、改语句
	2. queryForMap():查询结果将封装为map集合
		* 注意,这个方法查询的结果集长度只能是1.将列名作为	key,将值作为value,将这条记录封装为map集合。
	3. queryForList():查询结果将结果封装为list集合
		* 注意,该方法是将查询结果封装为map集合,然后再装	入list集合,所以能查询到所有结果。
	4. query():查询结果,将结果封装为JavaBean对象
		* 注意:该方法转换为对象的时候,其对象的变量如int,需要转换为包装类Integer。
		* new BeanPropertyRowMapper<对象名>(对象名.class)
	5. queryForObject:查询结果,将结果封装为对象
		* 一般用于/聚合函数查询,它将查询结果的数量表示。
4.这些方法的格式演示:
	* JdbcTemplate:
		1. query(sql,new BeanPropertyRowMapper<类型>(类型.class)):
	* 把查询到的数据封装成指定类型的JavaBean,再		存入到一个List集合。
		2. Map queryForMap(sql,Object args):把查询到的一行数据封装成Map集合,但是只能封装一行数据。
		3. List<Map>queryForList(sql,object args):把查询到的所有数据每一行封装成Map集合,多个map存入到map	集合中。
		4. 类型queryForObject(sql,类型.class):操作一列数据,常常与聚合函数一起使用。
	* 一般文件放在src根目录下面则直接写文件名即可,如果放在src下面的子目录中,需要以src目录为起点,写完整路径,如果查不到未见,会返回null。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗余

码字来之不易,您的鼓励我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值