Mybatis-plus 学习

来源

  • 慕课网 https://www.imooc.com/video/19500
  • 官方文档

使用步骤

  1. 导入依赖
  2. boot 启动类上加@MapperSacn 指定接口所在的包
  3. 接口 extends BaseMapper (T 为要操作的实体类)
  4. service层的接口 extends IService (T 为要操作的实体类)

测试使用 通用Mapper

使用的是 interface BaseMapper extends Mapper
Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能

测试新增

    /**
     * 测试新增 baseMapper.insert();
     */
    @Test
    public void test1(){
        UserInfoDmo userInfoDmo = new UserInfoDmo();
//        userInfoDmo.setId(-1L);
        userInfoDmo.setUserName("测试mp新增");
        userInfoDmo.setPhone("17714575412");
        userInfoDmo.setGender(0);
        userInfoDmo.setEmail("[email protected]");
        userInfoDmo.setCardNumber("6228449101233");
        userInfoDmo.setFaceId(2333L);
        userInfoDmo.setFingerprintId(12333L);
        userInfoDmo.setEntId(123333L);
        userInfoDmo.setDepartmentId(2L);
        userInfoDmo.setType(0);
        userInfoDmo.setRemark("999");
        userInfoDmo.setIsDelete(0);
        userInfoDmo.setCreateTime(FormatUtils.formatDate(new Date()));
        userInfoDmo.setModifyTime(FormatUtils.formatDate(new Date()));
        userInfoDmo.setCreateId(0L);
        userInfoDmo.setModifyId(0L);
        userInfoDmo.setGroupId(0L);
        userInfoDmo.setUserGroupId(0L);

        int insert = userInfoService.getBaseMapper().insert(userInfoDmo);
        System.out.println("受影响的行数: "+insert);
    }

根据id查询 和 根据id列表查询

    /**
     * 根据id查询 和 根据id列表查询
     */
    @Test
    public void test2(){
        BaseMapper baseMapper = userInfoService.getBaseMapper();
        UserInfoDmo userInfoDmo = baseMapper.selectById(1165809913960329218L);
        System.out.println("查询出来的结果: "+userInfoDmo.toString());
        System.out.println("--------------------------------------");
        List userInfoDmos = baseMapper.selectBatchIds(Arrays.asList(1164419024302030850L, 1164421403969724417L, 1165143963833339905L));
        userInfoDmos.forEach(System.out::println);
    }

根据Map 条件查询 (map 中存的 key是数据表中的列名 不是实体类的字段名)

        BaseMapper baseMapper = userInfoService.getBaseMapper();
        HashMap hashMap = new HashMap<>();
        hashMap.put("face_id", 22);
        List userInfoDmos = baseMapper.selectByMap(hashMap);
        userInfoDmos.forEach(System.out::println);

排除实体类中字段在数据表中不存在的列

@TableField(exit=false)
Mybatis-plus 学习_第1张图片

以条件构造器为参数的查询方法

AbstractWrapper 条件构造器

QueryWrapper

    /**
     * 根据条件构造器查询
     * 姓名中包含test 男的 "2019-08-21"注册的
     */
    @Test
    public void test4(){
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.like("create_time","2019-08-21 ").like("user_name","test").eq("gender",1);
        BaseMapper baseMapper = userInfoService.getBaseMapper();
        List userInfoDmos = baseMapper.selectList(queryWrapper);
        userInfoDmos.forEach(System.out::println);
    }

查询结果排除某些字段信息

    /**
     * QueryWrapper select(Class entityClass, Predicate predicate) 
     * 排除 class 中某些不需要查询处理的列 
     */
    @Test
    public void selectByWrapper(){
//        UserInfoDao
        BaseMapper baseMapper = userInfoService.getBaseMapper();
//        构造查询条件
        QueryWrapper userInfoDmoQueryWrapper = new QueryWrapper<>();
        userInfoDmoQueryWrapper.select(UserInfoDmo.class, userInfo->!userInfo.getColumn().equals("modify_time")
                                        &&!userInfo.getColumn().equals("modify_id"))
                                        .like("user_name","2");
        List userInfoDmos = baseMapper.selectList(userInfoDmoQueryWrapper);
        userInfoDmos.forEach(System.out::println);
    }

你可能感兴趣的:(Mybatis)