本文概览:配置mybatis所需要的pom.xmlspringxml、代码,包含单数据源和多数据源两种配置。还包括sqlSessionTemplate的使用。

1 单数据源

1.1 配置

1 pom.xml

(1)mybatis相关

(2)数据库连接池

(3)spring相关

(4)为了进行测试还需要

2 spring.xml

snip20161201_148

(1)applicationContext.xml

  • 加载properties
  • 加载其他的spring的xml文件,如下local_database.xml

(2) mybatis对应的spring配置

  • datasource定义
  • sqlSessionFactory定义
  • 两种mybatis方式
  • 事务配置

(4) config.properties

3. mapper.xml

4. 代码

(1)定义dao

(2)测试

  • 定义测试基类

  • 测试类

5. 关于mybatis-config.xml的说明,其实这里推荐不再使用mybatis-config.xml

有的时候在配置中使用了mybatis-config.xml,如下

mybatis-config.xml作用就是可以配置<mappers>和<typeHandlers>,,是为了配置sqlSessionFactoryBean服务:

mybatis-config.xml配置都可以在sqlSessionFactoryBean中属性直接配置,这样就不需要mybatis-config.xml了,如下通过mapperLocations来配置替换mybatis-config.xml中的<mappers>:

综上,引入mybatis-config.xml的作用就是为了更方便的初始化sqlSessionFactoryBean,但是不好地方就是自己在配置mybatis时需要新增一个mybatis-config.xml文件,这样造成配置文件太多了,所以就推荐不使用mybatis-config.xml的方式,都是直接在定义sqlSessionFactory时配置属性。

6. github代码

https://github.com/zhonghuwu/mybatistemplate

1.2 @Respository和sqlSessionTemplate两种使用mybatis的方式区别

1、在dao.xml文件

(1)@Respository配置

(2)sqlSession方法

2、关于mapper.xml中namespace属性

(1)使用@Respository需要指定具体的类。

(2)对于sqlSessionTemlate,此属性的值则是一个随意的名字,但是这里是采用和接口方法相同,这样好处在于可以同时使用@Respository和sqlSessionTemplate方法。

2 多数据源

相比上面的mybatis的xml的配置,需要再新增一个xml,需要配置如下

  • dataSource,新增的数据源dataSource2
  • sqlSessionFactory,需要指定新的数据源dataSource2和mapper文件,所以所以在代码中新数据源对应的mappers要和之前数据源放在不同目录下面。
  • MapperScannerConfiurer,定义新的MappScannerConfigureer时,需要重新指定basePackage和sqlSessionFactory。所以在代码中新数据源对应的dao接口要和之前数据源放在不同包下面。
  • TransactionManger,指定新的数据源dataSource2。
  • sqlSesion,指定新的数据源dataSource2。

3 SqlSessionTemplate

在上面的单数据源和多数据源都是使用mybatis的注解@Responsitory。其实还有这一种方法就是通过sessionTemplate方式来使用。配置信息都是和上面的一样,下面是代码

1.  使用sqlSession来实现dao

2. 测试

 4 扫描配置的改进

1、xml修改
在xml中把
替换为

2、把Dao接口中@Repository注解删除掉

在使用mybatis generator自动生成mapper时,都是没有使用@Respository的,参考

Mybatis Generator

(全文完)

分类&标签

发表评论

电子邮件地址不会被公开。 必填项已用*标注