目录
- 一、前言
- 二、整合Junit
- 三、整合MyBATis
- 1.注解开发
- 2.XML配置
一、前言
自从使用SpringBoot后,前言部分不需要再过多赘述Maven的坐标了,但是由于我们需要集成外部的工具(框架),所以可能还是需要引入坐标,有些在创建模块的时候可以使用图形化界面勾选,有些依旧只能在pom.xml中手动添加,本文需要的坐标如下:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter-test</artifactId> <version>3.0.5</version> <scope>test</scope> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
二、整合Junit
正常创建一个SpringBoot的模块,这里先模拟一个Service类,在里面设计一个add方法:
@Service public class UserService { public void add(){ System.out.println("add..."); } }
编写测试类如下:
/** * userService的测试类 */ //junit5 @Extendwith(SpringExtensihttp://www.devze.comon.class) //junit4 //@RunWith(SpringRunner.class) //@SpringBootTest(classes = SpringBootTestApplication.class) @SpringBootTest//当测试类的包名和Java中主包相同 或 测试类包名属于主包的子包,可以不用写(classes = SpringBootTestApplication.class) class UserServiceTest { @Autowired private UserService userService; @Test public void testAdd(){ userService.add(); } }
注意:这里我演示的是Junit5的测试注解,如果需要使用Junit4,则需要导入Junit4的包,4和5的注解略有不同。
效果如下(不必关注警告,这是在提示未来版本可能会取消掉某个功能):
三、整合MyBatis
1.注解开发
首先先创建一个表,用于模拟各种操作(这里我们只演示查询操作)
同时需要一个User类来封装数据:
public class User { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
然后我们需要js在yml配置文件中配置数据源:
# datasource spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql:///springboot password: 123456 username: root
这里我们直接创建一个映射接口,使用注解开发,其中@Mapper表示扫描这个映射接口,自动生成这个接口的实现类,里面我们只写一个查询方法。
@Mapper public interface UserMapper { @Select("select * from t_user") public List<User> findAll(); }
创建测试类:
@ExtendWith(SpringExtension.class) @SpringBootTest class SpringBootMybatisApplicationTests { @Autowired python private UserMapper userMapper; @Test public void testFindAll1() { List<User> list = userMapper.findAll(); System.out.println(list); } }
效果如下:
2.xml配置
虽然注解相对方便,但是在多表操作的大项目中,使用xml配置映射文件会让可读性更高,并且许多老项目一直沿用的xml配置,所以依旧需要了解xml的编写方式。
首先是接口,我们这里重新写一个:
@Mapper public interface UserXmlMapper { public List<User>js findAll(); }
然后就是对应的xml映射文件:
<mapper namespace="com.yds.springbootmybatis.mapper.UserXmlMapper"> <select id="findAll" resultType="user"> select * from t_user </select> </mapper>
同时,既然已经使用了xml配置,就必须配置核心配置文件,这里我们直接写在yml配置文件中,也就是说,我们在yml配置文件中配置了两个东西,一个是数据源,一个是核心配置文件(在核心配置文件中取了别名):
#mybatis mybatis: mapper-locations: classpath:mapper/*Mapper.xml #mapper的映射文件路径 type-aliases-package: com.yds.springbootmybatis.domain #vconfig-location: #指定mybatis的核心配置文件的
同时重写测试类:
@ExtendWith(SpringExtension.class) @SpringBootTest class SpringBootMybatisApplicationTests { @Autowired private UserMapper userMapper; @Autowired private UserXmlMapper userXmlMapper; @Test public void testFindAll1() { List<User> list = userMapper.jsfindAll(); System.out.println(list); } @Test public void testFindAll2() { List<User> list = userXmlMapper.findAll(); System.out.println(list); } }
效果如下:
到此这篇关于SpringBoot 整合MyBatis、Junit5的文章就介绍到这了,更多相关SpringBoot 整合MyBatis、Junit5内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论