1.查询selectOne  (3.0.3版)

 @Test
public void selectMethod() throws SQLException { // 根据ID获取一个对象的数据 Employee employee =employeeMapper.selectOne(new QueryWrapper<Employee>().eq("id","1")); if (employee!=null) {
logger.info("++一个员工信息+++++"+gson.toJson(employee));
} }

其相当于SQL语句:SELECT id,last_name,email,gender,age FROM tbl_employee WHERE id = ?

2.3版本的写法是直接注入一个对象,对象的set值就是查询的条件,同时,ID要是Long或Integer类型,条件一定要唯一,否则,会报数据重复的异常。

 Employee employee = new Employee();
employee.setId(1); Employee result =employeeMapper.selectOne(employee); if (result!=null) {
logger.info("++一个员工信息+++++"+gson.toJson(result));
}

2、查询selectMaps(3.0.3新出)

 @Test
public void selectMethod() throws SQLException { // 6、多个Map查询
Employee employee = employeeMapper.selectById(1); QueryWrapper<Employee> employeeQueryWrapper = new QueryWrapper<>(); List<Map<String, Object>> employeeList =employeeMapper.selectMaps(employeeQueryWrapper); if (!employeeList.isEmpty()) {
logger.info("++一个员工信息+++++"+gson.toJson(employeeList));
} }

写法跟其他的查询没有区别,只是返回的结果,变成List<Map<String,Object>>,条件查询跟上边的一样。

返回样式

 ++一个员工信息+++++[{"gender":"0","last_name":"Marry","id":1,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":2,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":3,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":4,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":12,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":13,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":14,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":15,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":16,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":17,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":18,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":19,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":20,"email":"1","age":55},{"gender":"0","last_name":"Marry","id":21,"email":"1","age":55}] (TestCRUD.java:159) 

本来以为是要装多个map进去查询就写成下边的样子,结果不是那个意思

  // 6、多个Map查询
Employee employee = employeeMapper.selectById(1); Map<String,Object> map1 = new HashMap<>(16);
map1.put("email",employee.getEmail());
map1.put("age",employee.getAge()); Employee employee2 = employeeMapper.selectById(2);
Map<String,Object> map2 = new HashMap<>(16);
map2.put("email",employee2.getEmail());
map2.put("age",employee2.getAge()); List<Map<String,Object>> mapList = new ArrayList<>();
mapList.add(map1);
mapList.add(map2); QueryWrapper<List<Map<String, Object>>> maps = new QueryWrapper<List<Map<String, Object>>>();
maps.setEntity((mapList)); List<Map<String, Object>> employeeList =employeeMapper.selectMaps(maps);

3、查询selectObjs

 @Test
public void selectMethod() throws SQLException { // 7、selectObjs
Employee employee = employeeMapper.selectById(1); List<Object> employeeList =employeeMapper.selectObjs(new QueryWrapper<Employee>().eq("email",employee.getEmail())); if (!employeeList.isEmpty()) {
logger.info("++一个员工信息+++++"+gson.toJson(employeeList));
} }

用法一样,就是返回的结果是个Object类型。

4、统计结果查询selectCount

  @Test
public void selectMethod() throws SQLException { // 8、selectCount
Employee employee = employeeMapper.selectById(1); Integer count = employeeMapper.selectCount(new QueryWrapper<Employee>().eq("email", employee.getEmail())); if (count > 0) {
logger.info("++统计结果:+++++" + count);
} }

5、分页查询selectPage

 @Test
public void selectMethod() throws SQLException { // 9、分页查询 Integer count = employeeMapper.selectCount(new QueryWrapper<Employee>().between("age", 0, 100)
.eq("gender", 0)); IPage<Employee> employeeIPage = new Page<Employee>(1, 3,count); IPage<Employee> employeeList = employeeMapper.selectPage(employeeIPage,new QueryWrapper<Employee>()
.between("age", 0, 100)
.eq("gender", 0)); if (!employeeList.getRecords().isEmpty()) {
logger.info("++一个员工信息+++++" + gson.toJson(employeeList));
} }

6、分页查询返回map类型的selectMapsPage

 @Test
public void selectMethod() throws SQLException { // 10、分页查询Map结果返回
Integer count = employeeMapper.selectCount(new QueryWrapper<Employee>().between("age", 0, 100)
.eq("gender", 0)); IPage<Employee> employeeIPage = new Page<Employee>(1, 3, count); IPage<Map<String, Object>> employeeList = employeeMapper.selectMapsPage(employeeIPage, new QueryWrapper<Employee>()
.between("age", 0, 100)
.eq("gender", 0)); if (!employeeList.getRecords().isEmpty()) {
logger.info("++一个员工信息+++++" + gson.toJson(employeeList));
} }

System.out.println("返回数据:"+employeeIPage.getRecords());

System.out.println("总条数:"+page.getTotal());

System.out.println("当前页码:"+page.getCurrent());

System.out.println("总页码:"+page.getPages());

System.out.println("每页显示条数:"+page.getSize());

System.out.println("是否有上一页:"+page.hasPrevious());

System.out.println("是否有下一页:"+page.hasNext());

System.out.println("返回的数据:"+page.getRecords());

Mybatis-Plus 实战完整学习笔记(七)------select测试二的更多相关文章

  1. Mybatis-Plus 实战完整学习笔记(六)------select测试一

    查询方法(3.0.3) 1.查询一个员工的数据 @Test public void selectMethod() throws SQLException { // 根据ID获取一个对象的数据 Empl ...

  2. Mybatis-Plus 实战完整学习笔记(八)------delete测试

    1.根据ID删除一个员工deleteById /** * 删除客户 * * @throws SQLException */ @Test public void deletedMethod() thro ...

  3. Mybatis-Plus 实战完整学习笔记(五)------insert测试

    一.更新操作探究(3.0.3版本) demo /** * 修改用户 * @throws SQLException */ @Test public void update() throws SQLExc ...

  4. Mybatis-Plus 实战完整学习笔记(一)------简介

    第一章    简介      1. 什么是MybatisPlus                MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只 ...

  5. Mybatis-Plus 实战完整学习笔记(十一)------条件构造器删除,修改,conditon

    1.修改功能--其他过滤方式跟select一样 /** * 修改条件构造器 * @throws SQLException */ @Test public void selectUpdate() thr ...

  6. Mybatis-Plus 实战完整学习笔记(十)------条件构造器核心用法大全(下)

    31.升序orderByAsc 31.升序orderByAsc List<Employee> employeeList = employeeMapper.selectList(new Qu ...

  7. Mybatis-Plus 实战完整学习笔记(九)------条件构造器核心用法大全(上)

    一.Mybatisplus通用(公共方法)CRUD,一共17种(3.0.3版),2.3系列也是这么多,这个新版本一定程度进行了改造和删减. 二.构造器UML图(3.0.3)-----实体包装器,主要用 ...

  8. Mybatis-Plus 实战完整学习笔记(四)------全局参数配置

    一.全局配置设置 (1)全局配置Id自动生成 <!--定义mybatisplus全局配置--> <bean id="globalConfig" class=&qu ...

  9. Mybatis-Plus 实战完整学习笔记(二)------环境搭建

     第二章    使用实例   1.搭建测试数据库 -- 创建库 CREATE DATABASE mp; -- 使用库 USE mp; -- 创建表 CREATE TABLE tbl_employee( ...

随机推荐

  1. 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库

    将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...

  2. mysql学习2:模糊匹配查询like,regexp,in

    mysql模糊匹配查询like,regexp,in   摘要 内容比较简单,无摘要.   关键词 模糊查询  like  regexp  in  contact   正文 下图是示例用到的数据表信息 ...

  3. sqlserver2017 +SSMS+ VS2017+SSDT 安装要点及相关组件下载地址

    1.sqlserver2017安装PolyBase需要安装jdk7 ,注意必须是7  jdk10是不行的. 下载地址:http://dl-t1.wmzhe.com/30/30117/jdk_7u_1. ...

  4. ajax中的contendType和dataType知识点梳理

    在ajax中有2个参数比较重要,之前一直没有搞清楚,下面我们开始梳理一下 1.contentType字段:这个字段的意思,ajax发送给后端的数据是什么类型 如果在ajax中不指定这个属性,则默认是u ...

  5. Exception starting filter encodingFilter

    1. maven运行tomcat6出现错误Exception starting filter encodingFilter: 严重: Exception starting filter encodin ...

  6. apache开启gzip压缩

    1.在httpd.conf中去掉下面的#号 LoadModule headers_module modules/mod_headers.so LoadModule deflate_module mod ...

  7. JFinal Web开发学习(一)开启HelloWorld

    初次接触JFinal框架,接触过MVC思想,接触过Spring. JFinal官网: http://www.jfinal.com/ 之前很嫌弃JavaWeb开发,主要原因是繁琐的xml配置. 官方推荐 ...

  8. Java并发-懒汉式单例设计模式加volatile的原因

    懒汉式单例的double check.例一: class SingletonClass{ private static SingletonClass instance = null; private ...

  9. Oracle触发器(trigger):一般用法

    trigger和procedure,function类似,只不过它不能被显示调用,只能被某个事件触发然后oracle自动去调用.常用的一般是针对一个表或视图创建一个trigger,然后对表或视图做某些 ...

  10. git 标签管理

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...