1、SpringBoot
整合JUnit
@SpringBootTest
class Springboot04JunitApplicationTests {
//1.注入需要测试的对象
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
//2.执行要测试的对象对应的方法
bookDao.save();
}
}
2、SpringBootTest
@SpringBootTest
JUnit
加载的SpringBoot
启动类SpringBoot
启动类小结:
导入测试对应的
starter
测试类使用
@SpringBootTest
修饰使用自动装配的形式添加要测试的对象
3、此时,将测试类换个位置存放,则无法运行该测试类
则需要使用classes
属性来指定引导类
@SpringBootTest(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {}
注意:
如果测试类在
SpringBoot
启动类的包或子包中,可以省略启动类的设置,也就是省略classes
的设定
小结:
- 测试类如果存在于引导类所在包或子包中无需指定引导类
- 测试类如果不存在于引导类所在的包或子包中需要通过
classes
属性指定引导类
1、需要配置:
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.Driver
1、MyBatis-Plus
和MyBatis
区别
2、步骤
①:手动添加SpringBoot
整合MyBatis-Plus
的坐标,可以通过mvnrepository.com获取
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.4.3version>
dependency>
注意:
由于
SpringBoot
中未收录MyBatis-Plus
的坐标版本,需要指定对应的Version
②:定义数据层接口与映射配置,继承BaseMapper
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
③:设置Mp相关的配置
#设置Mp相关的配置
#给所有的表加一个前缀tb_
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
④:其他同SpringBoot
整合MyBatis
小结:
- 手工添加
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
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druid-spring-boot-starterartifactId>
<version>1.2.6version>
dependency>
Druid
的配置方式spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
整合任意第三方技术
starter