mybatis plus代码生成器使用,mybatis-plus代码生成器优缺点

  mybatis plus代码生成器使用,mybatis-plus代码生成器优缺点

  

目录

条件构造器包装材料中基本比较操作模糊查询逻辑查询挑选排序

 

  

条件构造器

在下院议员中,包装接口的实现类关系如下:

 

  在下院议员查询中,还可以使用希腊字母的第11个方式查询,降低数据库列表写错的风险。

  

Wrapper中基本比较操作

操作方法方法说明情商等于=东北不等于大型旅行车的大于通用电气公司大于等于=lt小于务实贸易(劳动Exchange)低爆速炸药(低Explosive)职业介绍所(劳动力交换)小于等于=介于之间值数字一(one)和值注射毒品不在之间不在之间值数字一(one)和值2in字段IN (value.get(0),value.get(1),…)notIn字段不在(v0,v1,…)中测试案例:

 

  @ Test public void Test eqcp(){查询包装器用户包装器=新查询包装器();//SELECT id,用户名,密码,姓名,年龄,email FROM tb_user其中密码=?而年龄=?并在(?)wrapper.eq(密码, 123456 ).葛(《年龄》,20)。在(名称,李四, 王五, 赵六);ListUser用户=this。用户映射器。选择列表(包装器);对于(用户用户:用户){ System.out.println(用户);} }也可以用希腊字母的第11个方式构造条件:

  @ Test public void Test eqcp(){ LambdaQueryWrapper wrapper=new LambdaQueryWrapper();//SELECT id,用户名,密码,姓名,年龄,email FROM tb_user其中密码=?而年龄=?并在(?)包装纸。eq(用户:获取密码, 123456 ).葛(用户:getAge,20).在(用户:获取名称,’中李四, 王五, 赵六);ListUser用户=this。用户映射器。选择列表(包装器);对于(用户用户:用户){ System.out.println(用户);} }上面是最简单的查询方法,通常在开发中要根据表达式进行判断,表达式为真实的则拼接条件,如下:

  情商(布尔条件,R列,对象值).价值观).上面代码中的情况就是要进行计算的表达式,最终表达式结果为布尔型类型。

  举个例子:

  比如根据名字来判断,如果名字不为空则拼接条件字符串名称=空

  包装纸。eq(用户:获取密码, 123456 ).葛(用户:getAge,20).在(姓名!=null,User:getName,李四, 王五, 赵六);下面那个具体的案例,条件查询测试案例:

  s="brush:java;"> @Test public void testEq3() { //条件 LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); String name = null; Integer age = 20; queryWrapper.eq(name != null && !name.equals(""), User::getName, name);//等于 queryWrapper.gt(age != null, User::getAge, age);//大于? List<User> users = userMapper.selectList(queryWrapper); System.out.println(users); }

 

  

模糊查询

like :

 

  

LIKE %值% 例: like("name", "王") ---> name like %王%

notLike:

 

  

NOT LIKE %值% 例: notLike("name", "王") ---> name not like %王%

likeLeft :

 

  

LIKE %值 例: likeLeft("name", "王") ---> name like %王

likeRight :

 

  

LIKE 值% 例: likeRight("name", "王") ---> name like 王%

测试案例:

 

  

 @Test public void testWrapper() { QueryWrapper<User> wrapper = new QueryWrapper<>(); //SELECT id,user_name,password,name,age,email FROM tb_user WHERE name LIKE ? //Parameters: %曹%(String) wrapper.likeRight("name", "曹"); wrapper.select("id", "name","birthday"); List<User> users = this.userMapper.selectList(wrapper); for (User user : users) { System.out.println(user); } }

运行结果为:

 

  

 

  

 

  

逻辑查询

or

 

  

拼接 OR 主动调用 or 表示紧接着下一个**方法**不是用 and 连接!(不调用 or 则默认为使用 and 连接)

and

 

  

AND 嵌套 例: and(i -> i.eq("name", "李白").ne("status", "活着")) ---> and (name = 李白 and status <> 活着)

测试案例:

 

  

 @Test public void testOr() { QueryWrapper<User> wrapper = new QueryWrapper<>(); //SELECT id,user_name,password,name,age,email FROM tb_user WHERE name = ? OR age = ? wrapper.eq("name", "李四").or().eq("age", 24); //变为and方式 wrapper.eq("name", "李四").eq("age", 24); List<User> users = this.userMapper.selectList(wrapper); for (User user : users) { System.out.println(user); } }

将上面代码改为lambda方式构造条件:

 

  

 @Test public void testOr() { LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); //SELECT id,user_name,password,name,age,email FROM tb_user WHERE name = ? OR age = ?wrapper.eq(User::getName,"李四").or().eq(User::getAge, 24); //变为and方式 wrapper.eq(User::getName, "李四").eq(User::getAge", 24); List<User> users = this.userMapper.selectList(wrapper); for (User user : users) { System.out.println(user); } }

 

  

select

在MP查询中,默认查询所有的字段,如果有需要也可以通过select方法进行指定字段。

 

  测试案例:

  

 @Test public void testWrapper() { QueryWrapper<User> wrapper = new QueryWrapper<>(); //SELECT id,name,age FROM tb_user WHERE name = ? OR age = ? wrapper.eq("name", "李四") .or() .eq("age", 24) .select("id", "name", "age"); List<User> users = this.userMapper.selectList(wrapper); for (User user : users) { System.out.println(user); } }

Lambda方式构造条件:

 

  

LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.eq(User::getName, "李四") .or() .eq(User::getAge, 24) .select(User::getId, User::getName, User::getAge);

 

  

排序

orderByAsc :升序排序

 

  

参数:变长数组,设置多个字段名 例: orderByAsc("id", "name") ---> order by id ASC,name ASC

orderByDesc :降序排序

 

  

参数:变长数组,设置多个字段名 例: orderByDesc("id", "name") ---> order by id DESC,name DESC

orderBy : 自定义排序规则

 

  

方法定义:orderBy(boolean condition, boolean isAsc, R... columns) 参数1:true有效,false无效 ,参数2:是否升序,参数3..设置多个字段 例: `orderBy(true, true, "id", "name")`‐‐‐>`order by id ASC,name ASC`

也可以多个orderBy拼装,如下:

 

  

orderBy(true, true, "id").orderBy(true, true, "name")

效果同上面语句。

 

  测试案例:

  

 @Test public void testOrder() { QueryWrapper<User> wrapper = new QueryWrapper<>(); //SELECT id,user_name,password,name,age,email FROM tb_user ORDER BY age DESC wrapper.orderByDesc("age"); List<User> users = this.userMapper.selectList(wrapper); for (User user : users) { System.out.println(user); } }

Lambda方式构造条件:

 

  

LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.orderByDesc(User::getAge);

到此这篇关于mybatis-plus条件构造器的文章就介绍到这了,更多相关mybatis-plus条件构造器内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: