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);
    }

    //其它测试方法大同小异

}