pringBoot集成MyBatis和事务
集成MyBatis
集成MyBatis很简单:
- 添加依赖
- 配置文件中配置数据源
- 使用MyBatis逆向工程生成映射文件和实体类,DAO接口,并在接口类中添加注解@Mapper
添加依赖
SpringBoot集成MyBatis,需要添加两个依赖:
- SpringBoot中MyBatis的起步依赖,这个依赖在spring-boot-dependencies中没有,需要手动指定版本号。这是MyBatis提供的依赖
- MYSQL驱动依赖,不需要指定版本号,spring-boot-dependencies中已经设置好了。
1 |
|
配置数据源
在application.properties配置文件中,配置数据源:
1 |
|
在默认情况下,MyBatis的xml映射文件不会编译到target的class目录中,
所以在pom文件中的build标签中,添加编译xml文件,配置resource标签。
1 |
|
逆向工程生成DAO接口,映射文件和实体类
逆向工程需要配置GeneratorConfig.xml文件,具体详见MyBatis笔记。
在SSM项目中,有一个DAO组件扫描器注册在Spring配置文件中。
在SpringBoot项目中,使用@Mapper注解即可,表示将该对象加入到Spring容器中。
做完这三步,剩下就和SSM没什么区别了,正常使用。
DAO另一种开发方式
可以去掉DAO接口类的@Mapper接口
然后 运行的主类Application类上添加注解包扫描@MapperScan(basePackages=“com.example.demo.mapper”)
也可以去掉basePackages,直接写对应包路径。
将接口和映射文件分开
因为SpringBoot不能自动编译接口映射的xml文件,需要在pom.xml文件中手动指定。所以也可以将映射文件直接放在resources目录下,即在resources目录下新建目录mapper存放映射文件。
并在application.properties配置文件中,指定映射文件的位置,格式为:
1 |
|
这个配置只有在接口和映射文件不在同一个包的情况下,才需要指定。
使用Druid数据池
使用阿里的Druid,那么就首先的pom文件中引入druid的springboot起步依赖,druid-spring-boot-starter,然后在配置文件中加入:
1 |
|
就可以正常使用了。
集成事务
使用事务也非常简单。只需要在服务接口的继承类需要事务的方法上加上注解@Transactional。
就可以开启事务。
例如:
1 |
|
在Spring之前版本中还需要在启动类Application类上加上@EnableTransactionManagement,来开启事务。
但是在新版本中已经不需要了。所以这个注解加不加都行。