Junit
- 添加Junit的起步依赖 Spring Initializr 创建时自带
```xml
org.springframework.boot spring-boot-starter-test test
- SpringBoot整合JUnit
```java
@SpringBootTest
class Springboot04JunitApplicationTests {
// 1.注入需要测试的对象,使用@Autowired实现自动装配
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
// 2.执行要测试的对象对应方法
bookDao.save();
}
}
- @SpringBootTest
名称:@SpringBootTest
类型:测试类注解
位置:测试类定义上方
作用:设置JUnit加载的SpringBoot启动类
范例:
小结:@SpringBootTest
class Springboot05JUnitApplicationTests {
......
}
- 导入测试对应的starter
- 测试类使用@SpringBootTest修饰
- 使用自动装配的形式添加要测试的对象
Classes属性
- 名称:@SpringBootTest
- 类型:测试类注解
- 位置:测试类上方
- 作用:设置JUnit加载的SpringBoot引导类(启动类)
范例:
@SpringBootTest(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {
......
}
相关属性
- classes:设置SpringBoot引导类
- 注意事项:如果测试类在SpringBoot启动类的包或者子包下,可以省略classes的设定
MyBatis
流程:
- 创建新模块,选择Spring初始化,并配置模块相关基础信息
- 选择当前模块需要使用的技术集(MyBatis、MySQL)
在yml配置文件中设置数据源参数
#DB Configuration:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis
username: root
password: password
创建表
- 创建实体bean,属性名称和表中字段要相同
定义数据层接口与映射配置
@Mapper
public interface BookDao {
@Select("select * from tbl_book where id = #{id}")
public Book getById(Integer id);
@Select("select * from tbl_book")
public List<Book> getAll();
}
测试类中注入dao接口,测试功能 ```java @SpringBootTest class Springboot05MybatisApplicationTests {
@Autowired private BookDao bookDao;
@Test void contextLoads() {
System.out.println(bookDao.getById(11));
List<Book> all = bookDao.getAll();
all.forEach(book -> System.out.println(book));
}
}
- 输出
```java
Book{id=11, type='市场营销', name='直播销讲实战—本通', description='和秋叶—起学系列网络营销书籍'}
Book{id=1, type='计算机理论', name='Spring实战 第5版', description='Spring入门经典教程,深入理解Spring原理技术内幕'}
Book{id=2, type='计算机理论', name='Spring 5核心原理与30个类手写实战', description='十年沉淀之作,手写Spring精华思想'}
Book{id=3, type='计算机理论', name='Spring 5设计模式', description='全方位解析面向Web应用的轻量级框架,带你成为Spring MVC开发高手'}
Book{id=4, type='计算机理论', name='Spring MVC+MyBatis开发从入门到项目实战', description='源码级剖析Spring框架,适合已掌握Java基础的读者'}
Book{id=5, type='计算机理论', name='轻量级Java Web企业应用实战', description='源码级剖析Spring框架,适合已掌握Java基础的读者'}
Book{id=6, type='计算机理论', name='Java核心技术卷I基础知识(原书第11版)', description='Core Java第11版,Jolt大奖获奖作品,针对Java SE9、10、11全面更新'}
Book{id=7, type='计算机理论', name='深入理解Java虚拟机', description='5个维度全面剖析JVM,大厂面试知识点全覆盖'}
Book{id=8, type='计算机理论', name='Java编程思想(第4版)', description='Java学习必读经典,殿堂级著作!赢得了全球程序员的广泛赞誉'}
Book{id=9, type='计算机理论', name='零基础学Java(全彩版)', description='零基础自学编程的入门图书,由浅入深,详解Java语言的编程思想和核心技术'}
Book{id=10, type='市场营销', name='直播就该这么做:主播高效沟通实战指南', description='李子染、李佳琦、薇娅成长为网红的秘密都在书中'}
Book{id=11, type='市场营销', name='直播销讲实战—本通', description='和秋叶—起学系列网络营销书籍'}
Book{id=12, type='市场营销', name='直播带货:淘宝、天猫直播从新手到高手', description='—本教你如何玩转直播的书,10堂课轻松实现带货月入3W+'}
总结:
- 勾选MyBatis技术,也就是导入MyBatis对应的starter
- 数据库连接相关信息转换成配置
- 数据库SQL映射需要添加@Mapper被容器识别到
整合MyBatis常见问题处理
SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区
jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
或在MySQL数据库端配置时区解决此问题
- MySQL 8.X驱动强制要求设置时区
- 修改url,添加serverTimezone设定
- 修改MySQL数据库配置(略)
- 驱动类过时,提醒更换为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
- 定义数据层接口与映射配置,继承BaseMapper接口后,无需编写 mapper.xml 文件,即可获得CRUD功能。
```java
@Mapper
public interface UserDao extends BaseMapper<User> {}
- 其他同SpringBoot整合MyBatis(写Dao,实现类,测试等…)
测试类中注入dao接口,测试功能 ```java @SpringBootTest class Springboot06MybatisPlusApplicationTests {
@Autowired private BookDao bookDao;
@Test void contextLoads() {
System.out.println(bookDao.selectById(2));
}
@Test void testGetAll(){
System.out.println(bookDao.selectList(null));
}
}
**需要注意:**如果你的数据库表有前缀(在这里,实体类名称为Book,对应的表却叫tbl_book)要在 application.yml 添加如下配制
```yaml
#设置Mp相关的配置
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
小结:
1.手工添加MyBatis-Plus对应的starter
2.数据层接口使用BaseMapper简化开发
3.需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标
Druid
流程:
- 导入Druid对应的starter
```xml
com.alibaba druid-spring-boot-starter 1.2.6
- **变更Druid的配置方式(推荐) 这种方式需要导入 Druid对应的starter**
```yaml
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
username: root
password: 123456
小结:
1.整合Druid需要导入Druid对应的starter
2.根据Druid提供的配置方式进行配置
3.整合第三方技术通用方式