查询条件设置
等匹配查询
假如要进行登录查询的话,需要用到如下的等匹配,在实际的登录中应该做md5加密,从查询条件取出密码。
//条件查询
LambdaQueryWrapper<mpdb> lqw=new LambdaQueryWrapper<mpdb>();
//模拟登陆查询等匹配
lqw.eq(mpdb::getName,"tom666").eq(mpdb::getPassword,"123456");
List<mpdb> userlist=userDao.selectList(lqw);
System.out.println(userlist);
输出结果
如果只需要查询一个结果可以用一个selectOne()方法
//条件查询
LambdaQueryWrapper<mpdb> lqw=new LambdaQueryWrapper<mpdb>();
//模拟登陆查询等匹配
lqw.eq(mpdb::getName,"tom666").eq(mpdb::getPassword,"123456");
mpdb userlist=userDao.selectOne(lqw);
System.out.println(userlist);
范围查询
里面有四个类型的符号
lt——小于 ; le——小于等于 ; gt——大于 ; ge——大于等于
between
//条件查询
LambdaQueryWrapper<mpdb> lqw=new LambdaQueryWrapper<mpdb>();
//范围查询lt le gt ge
lqw.between(mpdb::getAge,18,25);
List<mpdb> userlist=userDao.selectList(lqw);
System.out.println(userlist);
使用between查询时输出如下
模糊匹配查询
like有提示如下这么多的方法,每两个就是一个有null判断,一个没有
likeLeft,likeRight就是带有百分号的
正常的like匹配
//模糊匹配
LambdaQueryWrapper<mpdb> lqw=new LambdaQueryWrapper<mpdb>();
lqw.like(mpdb::getName,"tom");
List<mpdb> userlist=userDao.selectList(lqw);
System.out.println(userlist);
输出如下
likeLeft匹配就是左边加上百分号,likeRight匹配就是右边加上百分号
如下的likeLeft就是tom左边没有字符
//模糊匹配
LambdaQueryWrapper<mpdb> lqw=new LambdaQueryWrapper<mpdb>();
//lqw.like(mpdb::getName,"tom");
lqw.likeLeft(mpdb::getName,"tom");
List<mpdb> userlist=userDao.selectList(lqw);
System.out.println(userlist);
小结
在官方网站中有如下各种各样的条件简介 | MyBatis-Plus
字段映射和表名映射
情况1:
当出现数据库字段名称和代码实体类时段名称不匹配时要进行相关联
提供了一个注解进行关联
情况2:
编码中添加了数据库没有的属性
代码中加多了一个online字段表示是否在线,这个不用保存到数据库里面的字段,还是用到相同的注解但是属性值设置另一个exist为false
情况3:
对于一些特殊的属性,比如密码,坑定不能返回,所以要设置不参与查询
情况4:
数据库表名和实体类名不匹配,用到一个@TableName注解