Mybatis-Plus 实战完整学习笔记(七)------select测试二
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测试二的更多相关文章
- Mybatis-Plus 实战完整学习笔记(六)------select测试一
查询方法(3.0.3) 1.查询一个员工的数据 @Test public void selectMethod() throws SQLException { // 根据ID获取一个对象的数据 Empl ...
- Mybatis-Plus 实战完整学习笔记(八)------delete测试
1.根据ID删除一个员工deleteById /** * 删除客户 * * @throws SQLException */ @Test public void deletedMethod() thro ...
- Mybatis-Plus 实战完整学习笔记(五)------insert测试
一.更新操作探究(3.0.3版本) demo /** * 修改用户 * @throws SQLException */ @Test public void update() throws SQLExc ...
- Mybatis-Plus 实战完整学习笔记(一)------简介
第一章 简介 1. 什么是MybatisPlus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只 ...
- Mybatis-Plus 实战完整学习笔记(十一)------条件构造器删除,修改,conditon
1.修改功能--其他过滤方式跟select一样 /** * 修改条件构造器 * @throws SQLException */ @Test public void selectUpdate() thr ...
- Mybatis-Plus 实战完整学习笔记(十)------条件构造器核心用法大全(下)
31.升序orderByAsc 31.升序orderByAsc List<Employee> employeeList = employeeMapper.selectList(new Qu ...
- Mybatis-Plus 实战完整学习笔记(九)------条件构造器核心用法大全(上)
一.Mybatisplus通用(公共方法)CRUD,一共17种(3.0.3版),2.3系列也是这么多,这个新版本一定程度进行了改造和删减. 二.构造器UML图(3.0.3)-----实体包装器,主要用 ...
- Mybatis-Plus 实战完整学习笔记(四)------全局参数配置
一.全局配置设置 (1)全局配置Id自动生成 <!--定义mybatisplus全局配置--> <bean id="globalConfig" class=&qu ...
- Mybatis-Plus 实战完整学习笔记(二)------环境搭建
第二章 使用实例 1.搭建测试数据库 -- 创建库 CREATE DATABASE mp; -- 使用库 USE mp; -- 创建表 CREATE TABLE tbl_employee( ...
随机推荐
- mysql学习1:数据类型:数字型,日期和时间,字符串类型(总结)
mysql数据类型:数字型,日期和时间,字符串类型 摘要 MySQL中定义数据字段的类型对数据库的优化是非常重要的: MySQL支持多种类型,大致可以分为三类,如下. 数字类型 整数:tinyint. ...
- Bootstrap(3) 表格与按钮
1.表格 基本格式,实现基本的表格样式 <table class="table"> <thead> <tr> <th>编号</ ...
- 29-jsp中用js进行时间格式转化
CST可以为如下4个不同的时区的缩写: 美国中部时间:Central Standard Time (USA) UT-6:00 澳大利亚中部时间:Central Standard Time (Austr ...
- POI依据类型设置导出格式
//设置Bigdecimal数据导出时以数值形式输出 CellStyle decimalStyle = workbook.createCellStyle(); DataFormat decimalDf ...
- mysql联表更新使用join
update TableA as a inner join TableB as b on a.order_id=b.order_id set a.last_time='2018-01-01' whe ...
- vue之微信登录
参考文章https://www.cnblogs.com/examine/p/4634947.html 微信开放平台和公众平台的区别1.公众平台面向的是普通的用户,比如自媒体和媒体,企业官方微信公众账号 ...
- 完全卸载jdk
完全卸载jdk 如(卸载jdk1.7.0_80), 当卸载jdk时出现删除信息不全,导致无法安装,可通过此方法实现完全卸载. 1.打开系统运行输入regedit(注册表)分别查找以下路径 (1) ...
- ASCII、Unicode和UTF-8编码的区别;中英文混合截取
ASCII编码是128个字符 中国把汉字编入GB2312,Shift_JIS/Euc-kr各国标准..... Unicode是为了解决各国乱码的,但浪费存储空间 UTF-8编码把一个Unicode字符 ...
- PAT 1001 害死人不偿命的(3n+1)猜想 (15)(C++&JAVA&Python)
1001 害死人不偿命的(3n+1)猜想 (15)(15 分) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反 ...
- Android.DebugTools.Traceview & dmtracedump
1. Android 调试工具之Traceview http://www.cnblogs.com/devinzhang/archive/2011/12/18/2291592.html TraceVie ...