Wrapper---条件查询器

  :使用它可以实现很多复杂的查询

几个案例

 环境:

  参照博客MybatisPlus入门程序

1.条件查询

1.1 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12的用户

//查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12
@Test
void selectBy01(){

QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper
.isNotNull("name") //name不为空的用户
.isNotNull("email") //邮箱不为空的用户
.ge("age",12); //年龄大于等于12

userMapper.selectList(wrapper).forEach(System.out::println);
}

结果

1.2 查询 name"Jone" 的用户

//查询name为 "Jone" 的用户
@Test
void selectBy02(){

QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.eq("name","Jone"); //name为 "Jone" 的用户

//查询一个数据,为多个用 selectList 或者 selectByMap
User user = userMapper.selectOne(wrapper);

System.out.println(user);
}

结果

1.3 查询 10 到 20 岁的用户数

 //查询 10 到 20 岁的用户数
@Test
void selectBy03(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper.between("age",10,20);

Integer count = userMapper.selectCount(wrapper);
//查询 10 到 20 岁的用户的结果数

System.out.println(count);
}

结果

2.模糊查询

2.1 使用 like + notLike + likeRight

 @Test
void selectLike01(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper
.notLike("name","To") //名字不包含 To
.like("name","o") //名字包含 o 的
//左和右 左:%e 右:e% 两边:%e%
//右查询
.likeRight("email","test");

List<Map<String, Object>> users = userMapper.selectMaps(wrapper);
users.forEach(System.out::println);
}

结果

2.2 子查询

 @Test
void selectLike02(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
wrapper
//一个SQL语句写的子查询
.inSql("id","select id from user where age<20");

List<Object> users = userMapper.selectObjs(wrapper);
users.forEach(System.out::println);
}

结果

2.3 降序排序

@Test
void selectLike03(){
QueryWrapper<User> wrapper=new QueryWrapper<>();
//降序排序
wrapper.orderByDesc("id");
//升序排序
//wrapper.orderByAsc("id");

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

结果

最新文章

  1. VIM 常用命令
  2. 频率直方图(hist)
  3. solr--搜索参数随笔
  4. 学习笔记2:前端PS切图
  5. Actions 动作集
  6. 关于C#编程中引用与值类型赋值的一些容易犯错的地方
  7. SQL学习之高级联结(自联结、自然联结、外联接)
  8. BZOJ 1798: [Ahoi2009]Seq 维护序列seq( 线段树 )
  9. AFNetworking详解和相关文章链接
  10. 小隐隐于野:基于TCP反射DDoS攻击分析
  11. js某一元素在数组中的索引
  12. mongodb 使用mongodump备份 指定用户名密码 出现错误 Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed
  13. Jmeter压力测试简单教程(包括服务器状态监控)
  14. JavaScript的几个概念简单理解(深入解释见You Don&#39;t know JavaScript这本书)
  15. Android ViewDragHelper全然解析 自己定义ViewGroup神器
  16. Go之函数直接实现接口
  17. 团队作业4Alpha冲刺(真.三英战吕布团队)
  18. Ubuntu下面 PHPSTORM2017.2破解方法
  19. JS中的作用域和闭包
  20. 20155218 《Java程序设计》实验二(Java面向对象程序设计)实验报告

热门文章

  1. RF射频传输,原理介绍,三分钟看懂!发射功率、接收灵敏度详解!
  2. STM32定时器学习---基本定时器
  3. C++实现红黑树
  4. Ubuntu Python2 和 Python3 共存 切换
  5. WLAN-无线路由综合应用
  6. WPF进阶技巧和实战09-事件(1-路由事件、鼠标键盘输入)
  7. 【GIS】GeoServer服务Authkey配置记录
  8. Linux mem 2.7 内存错误检测 (KASAN) 详解
  9. ArrayList 源码分析和自定义ArrayList实现
  10. 概述C# virtual修饰符