CRUD接口

在上一篇文章 MyBatis-Plus 快速起步 中,我们简单的尝试了查询功能,除此以外还有很多,例如:


//创建一个用户并插入
    @Test
    public void testInsert() {
        User user = new User();
        user.setAge(21);
        user.setEmail("12345@qq.com");
        user.setName("周xx");
        user.setId(8L);
        user.setRemark("我是一条备注");	//@TableField(exist = false) 放在实体类的属性上,不参与数据库表的映射
        int row = userMapper.insert(user);
        System.out.println("影响的行数为 : " + row);
    }

//通过id查询用户
    @Test
    public void testSelectById() {
        User user = new User();
        user = userMapper.selectById(3);
        System.out.println(user);
    }

//通过多个id查询多个用户
    @Test
    public void testSelectByIds() {
        List<Integer> longs = Arrays.asList(2, 3, 4);
        List<User> users = userMapper.selectBatchIds(longs);
        users.forEach(System.out::println);
    }

//通过map查询用户
    @Test
    public void testSelectByMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("name", "周xx");
        map.put("age", 21);
        List<User> users = userMapper.selectByMap(map);
        users.forEach(System.out::println);
    }

还有大量的接口可以在这里看到:CRUD接口

条件构造器

上面提到过Wrapper,它就是条件构造器
用法如下:

    @Test
    public void testSelcectByWrapper() {
        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
        
        //名字中包含‘周’且年龄小于30
        userQueryWrapper.like("name", "周").lt("age", 30);
        
        //名字中含有周,你年龄大于等于20,且小于等于30,并且email不为空
        userQueryWrapper.like("name", "周").between("age", 20, 30).isNotNull("email");
        
        //姓周,或者年龄大于25,按年龄降序,按id升序排序
        userQueryWrapper.likeRight("name", "周").or().ge("age", 25)
                .orderByDesc("age").orderByAsc("id");

        List<User> users = userMapper.selectList(userQueryWrapper);
        users.forEach(System.out::println);
    }

以上都是冰山一角,你可以在 条件构造器 中查看更多的使用方法

其实我个人不是很赞成这么使用,主要还是得看团队是否能接受,对于大多数人来说最直观的还是SQL语句。

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

To see the world as it is and to love it.