MyBatis/MyBatisSpring/MyBatisGenerate
MyBatis有三个容易混淆的概念
- MyBatis: 这个是在没有IOC框架下手动操作一个MyBatis类进行数据库读写操作
- MyBatisSpring: 这个是在Spring的框架下,借助IOC进行实例化,然后使用@Autowired加载MyBatis类进行数据库操作
- MyBatisGenerate: 这个是一个插件,帮助你生成MyBatis类,而不用每一个都手写做大量重复工作
MyBatisSpring的配置
MyBatisSpring的pom
由于我们大部分情况下都会选用Spring这种IOC控制框架,所以我们就以MyBatisSpring的使用作为教程
1 | <dependency> |
MyBatisSpring放入Spring的配置文件
将MyBatisSpring加入Spring只需要配置两个Bean
- SqlSessionFactoryBean: 这个是用来和数据库建立连接的Session类,因为数据库是采用TCP/IP协议链接的,Session是一种状态管理机制
- MapperScannerConfigurer: 这个是用来扫描接口在哪里,并且借助Spring的IOC能力进行实例化
1 | <!-- 配置SqlSessionFactoryBean --> |
如何开启SqlSessionFactoryBean
开启SqlSessionFactoryBean类本身需要3个参数
- dataSource: 数据源在哪里,怎么链接数据库,这个一般就是jdbc,参考数据库链接
- configLocation: SQLSession的配置文件,可以进行一些多少分钟超时等细节参数的配置
- mapperLocations: 在文章MyBatis的逻辑里我们说了被映射的接口并没有实现,XML才是存放了真正的SQL语句,这个属性就是告诉MyBatis去哪里找XML文件
MyBatisSpring的事务委托给Spring
根据文章事务的原理我们知道,任何连接到数据库的方法,都应该可以对数据库的事务进行操作,MyBatis虽然是作为持久层框架链接数据库,但是在MyBatisSpring里其并不自己处理事务,而是将事务委托给Spring
并不需要特别的配置,只需要和Spring的transactionManager使用同一个dataSource即可
SqlSessionFactoryBean的简单配置
这里用一个例子mybatis.xml文件来展示如何配置SqlSessionFactoryBean
1 | <?xml version="1.0" encoding="UTF-8" ?> |