文章目录
MyBatis与Spring整合
整合的原理,就是mybatis中的数据源交给spring管理,于此同时原先mybatis中的SqlSessionFactory也交给spring管理,一旦交给spring管理之后,spring中可以使用一个叫做SqlSessionTemplate的工具(类似之前我们使用的JdbcTemplate)直接执行增删改查,以上几个操作是针对mybatis的。
SqlSessionTemplate还有SqlSessionFactory(交给spring管理)其实这2个bean对应的类型都是mybatis官方提供的。(mybatis-spring-X-.jar)
其实上面描述的整合核心在SqlSessionTemplate中(这种方式也是最简单的),其实还有一种方式,原先mybatis中最后一块介绍的叫做基于接口方式的访问,spring中配置mybatis所谓第二种方式与这个基于接口方式的访问有关。
SqlSessionTemplate的使用(mybatis与spring整合的第一种方式)
步骤:
- 1.导入mybatis-spring-x-.jar
- 2.配置数据源
- 3.配置SqlSessionFactoryBean(它就相当于mybatis中的SqlSessionFactory)这个bean依赖数据源
- 4.配置SqlSessionTemplate
这个bean依赖SqlSessionFactoryBean - 5.在我们dao中,直接注入SqlSessionTemplate就可以了
spring中使用基于接口访问方式
2.2.8声明式事务处理-在mybatis与spring整合的时候体现
事务处理的步骤,一般会安排在service层,其实不注意在web层,或者dao层会安排声明式事务,这样不如service层安排事务来的合理,原因:dao层离数据库“太近“,往往一个复杂的也会会出现多次访问数据库,那么把多次访问放在dao层,dao就显得“臃肿”,自然放在service层比较好(离数据库也较远),如果放在web层主要是离数据库太远了(一旦远了就势必会占用数据库连接的事件加长,这样不利于数据库连接被重用),综合一下service既能让dao更纯粹,同时让连接也不至于被占用过长时间而得不到重用。
从配置上来看,可以xml,也可以注解,我们先配置xml,再改成注解。无论是xml还是注解,数据源要有,再一个需要事务管理器,最后一个就是aop与注解相关的配置。