mybatisPlus的new QueryWrapper<>()和new LambdaQueryWrapper<>()的用法

举个例子:
现在数据库有一张user的表:
在这里插入图片描述

我现在需要使用QueryWrapper去查询名称为zhangsan的用户信息:

@SpringBootTest
class MybatisplusShiroApplicationTests {

	@Autowired
    private UserMapper userMapper;

    @Test
    void contextLoads() {
       
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //第一个参数为表列名,第二个为你的条件
        wrapper.eq("username", "zhangsan");
        User user = userMapper.selectOne(wrapper);
        System.out.println(user);

    }
}

上面的是比较基础的写法,
如果你想了解更多的mybatisPlus的用法
https://hxwwhl.blog.csdn.net/article/details/117817201

现在使用new LambdaQueryWrapper<>()的写法:

        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(User::getUsername, "zhangsan");
        User user = userMapper.selectOne(wrapper);
        System.out.println(user);

两者一对比可知User::getUsername和**“username”**的区别,这是为了避免我们写“username”的硬式变成,使用User::getUsername的时候也会有对应列的实体类的提示,避免在编码的时候忘记了表的列名。
在这里插入图片描述

同时new LambdaQueryWrapper<>()在项目开发的时候通常是链式的写法效果是一样的,优点是更加简便:

        User user = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getUsername, "zhangsan"));
        System.out.println(user);

版权声明:本文为qq_44739706原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。