1、SpringBoot整合JUnit
@SpringBootTest class Springboot04JunitApplicationTests { //1.注入需要测试的对象 @Autowired private BookDao bookDao; @Test void contextLoads() { //2.执行要测试的对象对应的方法 bookDao.save(); } }
2、SpringBootTest
- 名称:@SpringBootTest
- 类型:测试类注解
- 位置:测试类定义上方
- 作用:设置JUnit加载的SpringBoot启动类
- 相关属性
- classes:设置SpringBoot启动类
- 范例:
小结:
导入测试对应的starter
测试类使用@SpringBootTest修饰
使用自动装配的形式添加要测试的对象
3、此时,将测试类换个位置存放,则无法运行该测试类
则需要使用classes属性来指定引导类
@SpringBootTest(classes = Springboot04JunitApplication.class) class Springboot04JunitApplicationTests {}
注意:
如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定
3.2、整合MyBatis小结:
- 测试类如果存在于引导类所在包或子包中无需指定引导类
- 测试类如果不存在于引导类所在的包或子包中需要通过classes 属性指定引导类
1、需要配置:
- 核心配置:数据库连接相关信息(连什么?连谁?什么权限?)
- 映射配置:SQL映射(XML/注解)
2、步骤:
①:创建新模块,选择Spring初始化,并配置模块相关基础信息
②:选择当前模块需要使用的技术集(MyBatis、MySQL)
③:设置数据源参数
#2、配置相关信息 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/ssm_db username: root password: root
④:定义数据层接口与映射配置
@Mapper public interface BookDao { @Select("select * from tbl_book where id = #{id}") public Book getById(Integer id); }
⑤:测试类中注入dao接口,测试功能
@SpringBootTest class Springboot05MybatisApplicationTests { @Autowired private BookDao bookDao; @Test void contextLoads() { Book book = bookDao.getById(1); System.out.println(book); } }
小结:
- 勾选MyBatis技术,也就是导入MyBatis对应的starter
- 数据库连接相关信息转换成配置
- 数据库SQL映射需要添加@Mapper被容器识别到
3、SpringBoot整合MyBatis常见问题
①MySQL 8.X驱动强制要求设置时区
-
修改url,添加serverTimezone设定
-
SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
-
-
修改MySQL数据库配置(略)
②驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver3.3、整合MybatisPlus
1、MyBatis-Plus和MyBatis区别
- 导入坐标不同
- 数据层实现简化
2、步骤
①:手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository.com获取
com.baomidou mybatis-plus-boot-starter 3.4.3
注意:
由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version
②:定义数据层接口与映射配置,继承BaseMapper
@Mapper public interface BookDao extends BaseMapper{ }
③:设置Mp相关的配置
#设置Mp相关的配置 #给所有的表加一个前缀tb_ mybatis-plus: global-config: db-config: table-prefix: tbl_
④:其他同SpringBoot整合MyBatis
3.4、整合Druid小结:
- 手工添加MyBatis-Plus对应的starter
- 数据层接口使用BaseMapper简化开发
- 需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标
- 指定数据源类型
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC username: root password: root type: com.alibaba.druid.pool.DruidDataSource
- 导入Druid对应的starter
com.alibaba druid-spring-boot-starter 1.2.6
- 变更Druid的配置方式
spring: datasource: druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC username: root password: root3.5、总结
整合任意第三方技术
- 导入对应的starter
- 配置对应的设置或采用默认配置