整合JUnit
@SpringBootTest 定义 Springboot04JunitApplicationTests 是一个测试类,里边支持注入对象,一旦注入后这个对象就可以参与到@Test 中了。 名称:@SpringBootTest 类型:测试类注解 位置:测试类定义上方 作用:设置JUnit加载的SpringBoot启动类 范例:
@SpringBootTest
class Springboot04JunitApplicationTests
总结:
1、导入测试对应的starter,在创建工程的时候就有了 2、测试类使用@SpringBootTest修饰 3、使用自动装配的形式添加要测试的对象
classes属性
在当我们将测试类的位置更换到上一级的目录中时,该测试类就不可用了。 如果当前的测试类在该项目的引导类所在的包或者子包下的话,即可不用管,但是如果测试类与引导类的位置不符合上述要求,测试类就拿不到spring容器,则需要引入classes属性
package com.zg;
import com.zg.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
@SpringBootTest(classes = Springboot04JunitApplication.class)
//@ContextConfiguration(classes = Springboot04JunitApplication.class)
//上面两种方式均可以帮助测试类拿到spring容器
class Springboot04JunitApplicationTests {
//1、注入要测试的对象
@Autowired//先自动装配,把bookdao注入进来
private BookDao bookDao;
@Test
void contextLoads() {
//2、执行要测试的对象对应的代码
bookDao.save();
}
}
如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定
整合MyBatis
核心配置:数据库连接相关信息(连什么?连谁?什么权限) 映射配置:SQL映射(XML/注解)
SpringBoot整合MyBatis
1、创建新模块,选择Spring初始化,并配置模块相关基础信息
2、选择当前模块需要使用的技术集(MyBatis、MySQL)
3、设置数据源参数
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mp
username: root
password: root
SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.o时,需要在url连接串中配置时区jdbc:mysq1:/ /localhost:3306/ssm_db?serverTimezone=UTC 或在MySQL数据库端配置时区解决此问题
4、定义数据层接口与映射配置
package com.zg.dao;
import com.zg.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
public interface UserDao {
@Select("select * from tb_user where id=#{id}")
public User getById(Long id);
}
5、定义pojo
package com.zg.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String user_name;
private String password;
private String name;
private Integer age;
private String email;
}
6、测试类中进行测试
package com.zg;
import com.zg.dao.BookDao;
import com.zg.dao.UserDao;
import org.junit.jupiter.api.Test;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot05MybatisApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
System.out.println(userDao.getById(2L));
}
}
整合MyBatis-Plus
MyBatis-Plus与MyBatis区别 导入坐标不同 数据层实现简化
SpringBoot整合MyBatis-Plus
1、手动添加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
2、定义数据层接口与映射配置,继承BaseMapper
package com.zg.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zg.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
public interface UserDao extends BaseMapper<User> {
}
3、设置数据源参数
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mp
username: root
password: root
4、定义pojo
package com.zg.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String user_name;
private String password;
private String name;
private Integer age;
private String email;
}
5、测试类中进行测试
package com.zg;
import com.zg.dao.BookDao;
import com.zg.dao.UserDao;
import org.junit.jupiter.api.Test;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot05MybatisApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
System.out.println(userDao.getById(2L));
}
}
整合Druid
导入druid对应的starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
指定数据源
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mp
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
也可变更druid的配置方式
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mp
username: root
password: root
|