Junit
两个注解:
@RunWith(SpringRunner.class)(新版本可以不用写)
@SpringBootTest(class= 启动类.class)
步骤:
-
搭建项目
-
引入依赖
-
编写测试类
1 . 先写一个service的类用来测试。一般测试的都是业务类
service的类要添加@Service注解
2 . 编写测试类并加上测试相关注解
个人理解,这里的测试其实就是
在测试类里面声明一个被测试类的对象------>写测试方法(通过对象调用被测方法)------>运行测试方法
声明对象时要加注解@Autowired
写测试方法时要加注解@Test
package com.ljm.springbootprofile;
import com.ljm.springbootprofile.server.UserServicce;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest(classes = SpringbootProfileApplication.class)
public class UserServicceTest {
// 创建一个UserServicce类的对象,用来调用类内的方法
@Autowired //对成员变量、方法、构造函数进行自动装配工作
private UserServicce userServicce;
@Test
public void TestAdd(){
userServicce.UserAdd();
}
}
- 运行测试方法
Redis
前置条件是安装了redis,我安装的是Windows版本的。
安装过程参考文章:(https://zhuanlan.zhihu.com/p/472045476)
步骤:
- 搭建springboot项目
- 引入redis起步依赖
使用快速创建的方式,IDEA会自动帮忙配好依赖 - 配置redis相关属性(连接本地redis不需要)
在resources的application.properties文件里配置
#配置redis的相关配置
spring.redis.host=localhost //这里如果不是主机的话,就是链接redis机器的IP
spring.redis.port=6379
-
注入redisTemplate模板
直接在测试类里面写一个私有的RedisTemplate的对象即可 -
编写测试方法,测试
运行之前需要先启动redis
@SpringBootTest
class SpringbootRedisApplicationTests {
// 注入redis的template模板
@Autowired
private RedisTemplate redisTemplate;
@Test
public void TestSet() {
//存数据
redisTemplate.boundValueOps("name").set("ljm");
}
@Test
public void TestGet(){
//取数据
Object name = redisTemplate.boundValueOps("name").get();
System.out.println(name);
}
}
MyBatis
步骤:
-
搭建工程,创建mybatis起步依赖以及添加sql驱动
在使用springboot iniltializr创建模块时,记得勾选这两个 -
编写DataSource和mybatis相关配置
#datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/databaseforjava
spring.datasource.username=root
spring.datasource.password=root
#用注解开发就不需要写mybatis的配置信息了
- 定义表和实体类
在mysql里先创建好数据库和表,这里是已经创建好的结果:
编写实体类:
Java–>domain–>User
三个成员变量+setter、getter、tostring
package domain;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
- 编写dao和mapper文件/纯注解开发
方法一:
java–>com.ljm.springbootmybatis—>mapper–>UserMapper
两个注解:
@Mapper,要在类前面加
@select(“你的MySQL查询语句”),方法前加
是一个接口,返回值是List
package com.ljm.springbootmybatis.mapper;
import com.ljm.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
@Select("select * from mybatis_user")
public List<User> findAll();
}
(写完mapper接口就可以测试了)
方法二
xml配置方法:
Java–>com.ljm.springbootmybatis—>mapper—>UserXmlMapper
接口写法和上面差不多但不用写sql语句
package com.ljm.springbootmybatis.mapper;
import com.ljm.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserXmlMapper {
public List<User> findAll();
}
映射文件(配置):
resources–>mapper—>UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace这里复制最后一个路径选项,作用是让这个文件和UserXmlMapper存在映射关系-->
<mapper namespace="com.ljm.springbootmybatis.mapper.UserXmlMapper">
<select id="findAll" resultType="user">
select * from TABLE ( mybatis_user ) where name = 'zhangsan';
</select>
</mapper>
<!--到这里为止映射文件就写完了,
下一步是去application.properties文件里配置mybatis的相关信息-->
application.properties:
#注解开发:
#datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/databaseforjava
spring.datasource.username=root
spring.datasource.password=root
#用注解开发就不需要写mybatis的配置信息了
#xml映射文件方法需要配置的信息
#mybatis
#这里需要配置mapper映射路径和user对应的别名
#classpath对应resources,*表示通配符,即xxxMapper.xml都可以映射
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
#这里对应的是别名user的包,别名的相关信息可以百度
mybatis.type-aliases-package=com.ljm.springbootmybatis.domain
#config-location: #配置mybatis核心配置文件的,这里没有用上
- 测试
编写测试类并运行:
package com.ljm.springbootmybatis;
import com.ljm.springbootmybatis.domain.User;
import com.ljm.springbootmybatis.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class SpringbootMyBatisApplicationTests {
@Autowired
private UserMapper userMapper; //测试谁就创建谁的对象
@Test
void TestFindAll() {
List<User> list = userMapper.findAll();
System.out.println(list);
}
}
运行结果·:
方法二测试:
package com.ljm.springbootmybatis;
import com.ljm.springbootmybatis.domain.User;
import com.ljm.springbootmybatis.mapper.UserMapper;
import com.ljm.springbootmybatis.mapper.UserXmlMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class SpringbootMyBatisApplicationTests {
@Autowired
private UserMapper userMapper; //测试谁就创建谁的对象
@Autowired
private UserXmlMapper userXmlMapper;
@Test
void TestFindAll() {
List<User> list = userMapper.findAll();
System.out.println(list);
}
@Test
void TestFindAll2() {
List<User> list2 = userXmlMapper.findAll();
System.out.println(list2);
}
}
运行结果: