Junit

  • 添加Junit的起步依赖 Spring Initializr 创建时自带 ```xml org.springframework.boot spring-boot-starter-test test
  1. - SpringBoot整合JUnit
  2. ```java
  3. @SpringBootTest
  4. class Springboot04JunitApplicationTests {
  5. // 1.注入需要测试的对象,使用@Autowired实现自动装配
  6. @Autowired
  7. private BookDao bookDao;
  8. @Test
  9. void contextLoads() {
  10. // 2.执行要测试的对象对应方法
  11. bookDao.save();
  12. }
  13. }
  • @SpringBootTest
    名称:@SpringBootTest
    类型:测试类注解
    位置:测试类定义上方
    作用:设置JUnit加载的SpringBoot启动类
    范例:
    1. @SpringBootTest
    2. class Springboot05JUnitApplicationTests {
    3. ......
    4. }
    小结:
  1. 导入测试对应的starter
  2. 测试类使用@SpringBootTest修饰
  3. 使用自动装配的形式添加要测试的对象

Classes属性

  • 名称:@SpringBootTest
  • 类型:测试类注解
  • 位置:测试类上方
  • 作用:设置JUnit加载的SpringBoot引导类(启动类)
  • 范例:

    1. @SpringBootTest(classes = Springboot04JunitApplication.class)
    2. class Springboot04JunitApplicationTests {
    3. ......
    4. }
  • 相关属性

    • classes:设置SpringBoot引导类
  • 注意事项:如果测试类在SpringBoot启动类的包或者子包下,可以省略classes的设定

MyBatis

流程:

  • 创建新模块,选择Spring初始化,并配置模块相关基础信息
  • 选择当前模块需要使用的技术集(MyBatis、MySQL)

image.png

  • 在yml配置文件中设置数据源参数

    1. #DB Configuration:
    2. spring:
    3. datasource:
    4. driver-class-name: com.mysql.jdbc.Driver
    5. url: jdbc:mysql://localhost:3306/mybatis
    6. username: root
    7. password: password
  • 创建表

  • 创建实体bean,属性名称和表中字段要相同
  • 定义数据层接口与映射配置

    1. @Mapper
    2. public interface BookDao {
    3. @Select("select * from tbl_book where id = #{id}")
    4. public Book getById(Integer id);
    5. @Select("select * from tbl_book")
    6. public List<Book> getAll();
    7. }
  • 测试类中注入dao接口,测试功能 ```java @SpringBootTest class Springboot05MybatisApplicationTests {

    @Autowired private BookDao bookDao;

    @Test void contextLoads() {

    1. System.out.println(bookDao.getById(11));
    2. List<Book> all = bookDao.getAll();
    3. all.forEach(book -> System.out.println(book));

    }

}

  1. - 输出
  2. ```java
  3. Book{id=11, type='市场营销', name='直播销讲实战—本通', description='和秋叶—起学系列网络营销书籍'}
  4. Book{id=1, type='计算机理论', name='Spring实战 第5版', description='Spring入门经典教程,深入理解Spring原理技术内幕'}
  5. Book{id=2, type='计算机理论', name='Spring 5核心原理与30个类手写实战', description='十年沉淀之作,手写Spring精华思想'}
  6. Book{id=3, type='计算机理论', name='Spring 5设计模式', description='全方位解析面向Web应用的轻量级框架,带你成为Spring MVC开发高手'}
  7. Book{id=4, type='计算机理论', name='Spring MVC+MyBatis开发从入门到项目实战', description='源码级剖析Spring框架,适合已掌握Java基础的读者'}
  8. Book{id=5, type='计算机理论', name='轻量级Java Web企业应用实战', description='源码级剖析Spring框架,适合已掌握Java基础的读者'}
  9. Book{id=6, type='计算机理论', name='Java核心技术卷I基础知识(原书第11版)', description='Core Java第11版,Jolt大奖获奖作品,针对Java SE9、10、11全面更新'}
  10. Book{id=7, type='计算机理论', name='深入理解Java虚拟机', description='5个维度全面剖析JVM,大厂面试知识点全覆盖'}
  11. Book{id=8, type='计算机理论', name='Java编程思想(第4版)', description='Java学习必读经典,殿堂级著作!赢得了全球程序员的广泛赞誉'}
  12. Book{id=9, type='计算机理论', name='零基础学Java(全彩版)', description='零基础自学编程的入门图书,由浅入深,详解Java语言的编程思想和核心技术'}
  13. Book{id=10, type='市场营销', name='直播就该这么做:主播高效沟通实战指南', description='李子染、李佳琦、薇娅成长为网红的秘密都在书中'}
  14. Book{id=11, type='市场营销', name='直播销讲实战—本通', description='和秋叶—起学系列网络营销书籍'}
  15. Book{id=12, type='市场营销', name='直播带货:淘宝、天猫直播从新手到高手', description='—本教你如何玩转直播的书,10堂课轻松实现带货月入3W+'}

总结:

  1. 勾选MyBatis技术,也就是导入MyBatis对应的starter
  2. 数据库连接相关信息转换成配置
  3. 数据库SQL映射需要添加@Mapper被容器识别到

整合MyBatis常见问题处理

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

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

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

  1. MySQL 8.X驱动强制要求设置时区
    • 修改url,添加serverTimezone设定
    • 修改MySQL数据库配置(略)
  2. 驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

[

](https://blog.csdn.net/qq_42324086/article/details/123605311)

MyBatisPlus

流程

  • 手动添加SpringBoot整合MyBatis-Plus的坐标,通过maven repo获取。需要注意的是,这里添加的依赖坐标,需要给出对应的version,因为Spring官方未收录MyBatis-Plus的坐标版本。 ```xml com.baomidou mybatis-plus-boot-starter 3.4.3
  1. - 定义数据层接口与映射配置,继承BaseMapper接口后,无需编写 mapper.xml 文件,即可获得CRUD功能。
  2. ```java
  3. @Mapper
  4. public interface UserDao extends BaseMapper<User> {}
  • 其他同SpringBoot整合MyBatis(写Dao,实现类,测试等…)
  • 测试类中注入dao接口,测试功能 ```java @SpringBootTest class Springboot06MybatisPlusApplicationTests {

    @Autowired private BookDao bookDao;

    @Test void contextLoads() {

    1. System.out.println(bookDao.selectById(2));

    }

    @Test void testGetAll(){

    1. System.out.println(bookDao.selectList(null));

    }

}

  1. **需要注意:**如果你的数据库表有前缀(在这里,实体类名称为Book,对应的表却叫tbl_book)要在 application.yml 添加如下配制
  2. ```yaml
  3. #设置Mp相关的配置
  4. mybatis-plus:
  5. global-config:
  6. db-config:
  7. table-prefix: tbl_

小结:
1.手工添加MyBatis-Plus对应的starter
2.数据层接口使用BaseMapper简化开发
3.需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标

Druid

流程:

  • 导入Druid对应的starter ```xml com.alibaba druid-spring-boot-starter 1.2.6
  1. - **变更Druid的配置方式(推荐) 这种方式需要导入 Druid对应的starter**
  2. ```yaml
  3. spring:
  4. datasource:
  5. druid:
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
  8. username: root
  9. password: 123456

小结:
1.整合Druid需要导入Druid对应的starter
2.根据Druid提供的配置方式进行配置
3.整合第三方技术通用方式