SpringBoot整合JUnit、MyBatis、MyBatisPlus、Druid


1、SpringBoot整合JUnit

1.1、整合JUnit

  • 添加Junit的起步依赖 Spring Initializr 创建时自带

    <!--测试的起步依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    
  • SpringBoot整合JUnit

    @SpringBootTest
    class Springboot07JunitApplicationTests {
          
          
    	@Autowired
    	private BookService bookService;
    	@Test
    	public void testSave(){
          
          
    		bookService.save();
    	}
    }
    
  • @SpringBootTest
    名称:@SpringBootTest
    类型:测试类注解
    位置:测试类定义上方
    作用:设置JUnit加载的SpringBoot启动类
    范例:

    @SpringBootTest
    class Springboot05JUnitApplicationTests {
          
          }
    

1.2、整合JUnit——classes属性

在这里插入图片描述

@SpringBootTest(classes = Springboot04JunitApplication.class)
//@ContextConfiguration(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {
    
    
    //1.注入你要测试的对象
    @Autowired
    private BookDao bookDao;

    @Test
    void contextLoads() {
    
    
        //2.执行要测试的对象对应的方法
        bookDao.save();
        System.out.println("two...");
    }
}

注意:

  • 如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定

2、SpringBoot整合MyBatis、MyBatisPlus

2.1、整合MyBatis

①:创建新模块,选择Spring初始化,并配置模块相关基础信息

②:选择当前模块需要使用的技术集(MyBatis、MySQL)

③:设置数据源参数

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot_db
    username: root
    password: 123456

④:创建user表
在 springboot_db 数据库中创建 user 表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');

⑤:创建实体Bean

public class User {
    
    
    // 主键
    private Long id;
    // 用户名
    private String username;
    // 密码
    private String password;
    // 姓名
    private String name;

}

⑥: 定义数据层接口与映射配置

@Mapper
public interface UserDao {
    
    

    @Select("select * from user")
    public List<User> getAll();
}

⑦:测试类中注入dao接口,测试功能

@SpringBootTest
class Springboot05MybatisApplicationTests {
    
    

    @Autowired
    private UserDao userDao;

    @Test
    void contextLoads() {
    
    
        List<User> userList = userDao.getAll();
        System.out.println(userList);
    }

}

⑧:运行如下

[User{
    
    id=1, username='zhangsan', password='123', name='张三'}, User{
    
    id=2, username='lisi', password='123', name='李四'}]

2.2、常见问题处理

SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区

jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC

或在MySQL数据库端配置时区解决此问题

1.MySQL 8.X驱动强制要求设置时区

修改url,添加serverTimezone设定
修改MySQL数据库配置(略)

2.驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

2.3、整合MyBatisPlus

①:手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository获取

  <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.4.3</version>
   </dependency>

注意事项: 由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version

②:定义数据层接口与映射配置,继承BaseMapper

@Mapper
public interface UserDao extends BaseMapper<User> {

}

③:其他同SpringBoot整合MyBatis
(略)

④:测试类中注入dao接口,测试功能

@SpringBootTest
class Springboot06MybatisPlusApplicationTests {
    
    

    @Autowired
    private UserDao userDao;

    @Test
    void contextLoads() {
    
    
        List<User> users = userDao.selectList(null);
        System.out.println(users);
    }

}

⑤: 运行如下:

[User{
    
    id=1, username='zhangsan', password='123', name='张三'}, User{
    
    id=2, username='lisi', password='123', name='李四'}]

注意: 如果你的数据库表有前缀要在 application.yml 添加如下配制

#设置Mp相关的配置
mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_

6、SpringBoot整合Druid

①: 导入Druid对应的starter

   <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid-spring-boot-starter</artifactId>
       <version>1.2.6</version>
   </dependency>
12345
#DB Configuration:
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
    username: root
    password: Lemon
    type: com.alibaba.druid.pool.DruidDataSource

②: 指定数据源类型 (这种方式只需导入一个 Druid 的坐标)

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
      username: root
      password: 123456

猜你喜欢

转载自blog.csdn.net/weixin_51405802/article/details/127348159
今日推荐