SpringBoot(二)—— 集成MyBatis、单元测试及事务支持

集成MyBatis

SpringBoot(一)—— 项目构建及快速入门中,我们已经初步完成了SpringBoot的构建,这里我们来看看在SpringBoot中如何使用MyBatis,其实我们在介绍MyBatis时就曾详细介绍了MyBatis与Spring的集成,在SpringBoot中集成MyBatis也是非常的简单,首先我们需要引入相关的依赖,如下:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>

然后我们肯定需要连接数据库呀,所以我们还需要在application.properties文件中,添加我们连接数据库的必要信息,如下:

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root

这里需要注意的是,我们在配置数据库的url连接的时候加上了serverTimezone=GMT%2B8,在SpringBoot2中如果不加上时区的话,可能会报错,该参数含义如下:北京时区也就是东八区,领先UTC八个小时。而serverTimezone=UTC代表的是全球标准时间。


除此之外我们还需要在配置文件中加入我们的Mapper.xml的信息,如下:

mybatis.mapperLocations=classpath:mapper/*.xml

其实上述这些配置信息,我们都是可以点击进入查看的,如下:
在这里插入图片描述
在这里插入图片描述

我们在SpringBoot中,也是可以通过上述的方式来将项目中的一些信息进行配置化的




单元测试

只要我们在SpringBoot中集成MyBatis就基本完成了,接下来我们可以使用单元测试来进行测试,在这之前我们在可以在数据库test中新建一张user表,然后可以使用之前介绍的代码生成器 Mybatis Generator中来进行生成相应的代码,这里就不重复介绍了


在使用单元测试前,我们需要添加相关的测试

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.1.12.RELEASE</version>
    <scope>test</scope>
</dependency>

然后我们就进行相关测试了,如下:

@SpringBootTest(classes = DemoApplication.class)
@RunWith(SpringRunner.class)
public class UserTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testUser(){
        System.out.println(userMapper.selectByPrimaryKey(1));
    }
}

运行发现如下错误:
在这里插入图片描述

看到这个我们就会想起来了,原来我们只是会进行相关包的扫描,但是我们没有给其加上注解呀,所以我们需要在Mapper.java文件上加上相关的注解,如下:
在这里插入图片描述

这里我们就一个Mapper文件,我们只需要加一次,万一我们一次性生成了很多的Mapper.java文件,难道我们要一个一个的去加么,这里我们其实可以再给SpringBoot添加上相应的扫描路径,如下:
在这里插入图片描述

这里其实我们在MyBatis与Spring的集成也做过类似的设置




事务支持

至于SpringBoot中的事务支持,也是和Spring里我们介绍的几乎一模一样,我们只需要在方法上加上@Transactional 注解即可,唯一不同的是,原来我们在Spring中使用事务时,还必须要加上@EnableTransactionManagement注解,并且还需添加相应的配置,如下:
在这里插入图片描述


现在在SpringBoot中都不需要了,我们直接使用@Transactional 注解即可,当然我们也可以加上@EnableTransactionManagement注解,如下:
在这里插入图片描述

发布了286 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/newbie0107/article/details/105106329