x
//【测试IService接口提供给我们的方法】
//mybatis-plus为我们提供了IService接口,以及IService接口对应的ServiceImpl实现类
//上面我们讲的'测试BaseMapper接口提供给我们的方法',可以发现BaseMapper接口已经给我们提供了挺完善的增删改查的方法。
//那么除了BaseMapper接口,其实还有IService接口,提供更为完善的增删改查的方法,如下
//IService接口的方法为了跟BaseMapper接口的方法命名区分开,所以IService接口的方法命名有如下特点:
//1. save开头的方法: 添加
//2. saveOrUpdate开头的方法: 添加和修改。如果你的实体类写了id成员变量,那么就是修改,没写id成员变量的话就是添加
//3. remove开头的方法: 删除
//4. update开头的方法: 修改
//5. get开头的方法: 查询
//6. list开头的方法: 查询
//IService接口有一个ServiceImpl实现类,如何使用IService接口和ServiceImpl实现类呢,如下
//注意: ServiceImpl实现类其实也会像上面的BaseMapper接口一样,虽然提供了很多方法,但是也可能会有不满足业务需求的时候
//所以通常下,我们会让ServiceImpl实现类去继承BaseMapper接口,
//这样就可以使用IService接口提供的方法、BaseMapper接口提供的方法、以及间接使用BaseMapper接口里面我们自定义的方法
/*
具体操作如下:
1. 创建我们自己的接口。在src/main/java/com.huanf.mybatisplus/目录下新建service目录,并在service目录里面新建UserService接口
并写入如下
2. 让自己的UserService接口继承IService接口,注意IService接口的泛型是实体类,例如User类,写入如下
public interface UserService extends IService<User> {
}
3. 为我们的UserService接口创建实现类。并让这个实现类继承mybatis-plus提供的ServiceImpl实现类、并且实现我们自己写的UserService接口。
在src/main/java/com.huanf.mybatisplus/service目录下新建impl.UserServiceImpl类,写入如下
//ServiceImpl的泛型是写要操作自己写的哪个接口,例如UserMapper接口;还要写要操作自己写的哪个实体类,例如User类
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
4. 如何能在MyBatisPlusServiceTest测试类访问到UserServiceImpl,那么就需要先将UserServiceImpl表示为一个组件,即添加@Service注解
5.在src/test/java/com.huanf.mybatisplus目录创建MyBatisPlusServiceTest类,作为测试类。并写入如下
上面是测试前的准备以及相关介绍
------------------------------------------------------------------------------------------------------------------------------------------
下面是正式测试
@SpringBootTest//用于测试
public class MyBatisPlusServiceTest {
@Autowired//自动装配的注解,用于使用我们写的UserService接口
private UserService userService;
@Test
//查询,count查询总记录数的方法,也就是查询数据库有多少条数据,注意不是查询具体的数据
public void zidingyi_testGetCount(){
long count = userService.count();
System.out.println("总记录数"+count);
}
@Test
//添加。saveBatch批量添加数据的方法
public void zidingyi_testInsertMore(){
//我们先创建一个list集合,泛型是实体类,例如User类。作用是通过循环先让list集合拥有多条数据
List<User> list = new ArrayList<>();
for (int i = 0; i <= 10; i++) {
//创建User类的对象,例如user_duixiang
User user_duixiang = new User();
//通过创建的user_duixiang对象,为User类的成员变量复制,这些成员变量对应的就是数据库的字段
user_duixiang.setName("saveBatch"+i);
user_duixiang.setAge(20+i);
//然后把已经赋值的User类的user_duixiang对象添加到list集合
list.add(user_duixiang);
}
//循环结束之后,list集合就已经有10条数据了,把这些数据批量全添加进数据库
boolean b = userService.saveBatch(list);
//注意saveBatch方法的返回值是布尔值,也就是要么成功要么失败
System.out.println(b);
}
//其它测试方法大同小异
}