1.spring对持久层的支持在于,得到数据库连接之后操作上的封装,将操作简化了。也就是说以后操作sql语句就用XXXTemplate(就是一个工具类)对象了。

2.数据库连接池的作用只在于得到数据库的连接,并对数据库的连接做管理,不涉及到得到连接后的操

所以,spring对持久层的支持的XXXTemplate类是属于spring包下的,是spring的支持。但是数据库连接池的获取连接的数据源对象XXXDataSource对象是在第三方包内的,比如c3p0和dbcp包

3.所以不同的XXXTemplate可以和不同的数据连接池(数据源)结合

-----

使用xxxTemplate对象的方式有俩种:

  1)直接将xxxTemplate对象当中成员变量放在具体的Dao中,并在Dao的ioc配置中注入已经在xml中配置好的xxxTemplate。

  2)用具体的Dao继承xxxDaoSupport,在有getTmeplate获得xxxTemplate对象使用,同时需要在Dao的ioc配置中,注入dataSource数据源。相比上一个方法,少了个xxxTemplate的配置。如果用注解的方式还是要通过set方法来注入dataSource的

事务相关:

参看链接:

https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/

xxxTemplate默认是不开启事务的,那如果要开启事务,就要通过 XXXTransactionManager 事务管理器来管理,通过操作PlatformTransactionManager、TransactionDefinition 和 TransactionStatus对象来实现事务控制。同时为了简化事务管理器的操作,spring提供了TransactionTemple工具类。

编程式事务处理有代码侵入性,所有开发中推荐使用声明式事务处理

 因为声明式事务处理的实现原理是aop,所有声明式的事务处理的方式和aop一样也经历了几个时期

 posted on 2017-08-13 12:05  改变一下  阅读(222)  评论(0编辑  收藏  举报