项目技术点-MybatisPlus 实现条件查询 | 学习笔记

简介: 快速学习 项目技术点-MybatisPlus 实现条件查询

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)项目技术点-MybatisPlus 实现条件查询】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11277


项目技术点-MybatisPlus 实现条件查询


简介:

image.png

Wrapper:条件构造抽象类,最顶端父类

AbstractWrapper:用于查询条件封装,生成 sql 的 where 条件

QueryWrapper:Entity 对象封装操作类,不是用 lambda 语法

UpdateWrapper:Update 条件封装,用于 Entity 对象更新操作

AbstractLambdaWrapper:Lambda 语法使用 Wrapper 统-处理解析 lambda 获取 column。LambdaQueryWrapper:看名称也能明白就是用于 Lambda 语法使用的查询 Wrapper

LambdaUpdateWrapper:Lambda 更新封装 Wrapper

1.mp 实现复杂条件查询的几种方法

(1)ge,gt,le,lt,isNull,isNotNull

@Test

public void testDelete()

Querywrapper<Ufer> querywrapper.new Querywrappero();

querywrapper

.isNull("name")

.ge("age",12)

.isNotNull("email");

int result.userMapper.delete(querywrapper);

System.out.println("delete return count=" + result);

(2)eq,ne

注意:seletOne 返回的是一条实体记录,当出现多条时会报错

@Test

public void testSelectOne()

QueryWrapper<User> queryWrapper.new QueryWrappero>();

querywrapper.eq("name","Tam");

User user = userMapper.selectOne(querywrapper);

System.out.println(user);

(3)between,notBetween

包含大小边界

@Test

public void testSelectCount()

Querywrapper <User> querywrapper = new Querywrappero();

queryWrapper.between("age",20,30);

Integer count = userMapper.selectCount(queryWrapper);

System.out.println(count);

(4)allEq

@Test

public void testSelectList()

Querywrapper<User> querywrapper = new Querywrappero();

Map<String, Object> map.new HashMapo();

map.put("id", 2);

map.put("name","Jack");

map.put("age", 20);

querywrapper.allEq(map);

List<User> users.us erMapper.selectList(queryw-apper);

users.forE ach(System.out::println);

(5)orderBy,orderByDesc,orderByAsc

@Test

public void testSelectListOrderBy()

Querywrapper<User>querywrapper.newQuerywrappero»();

querywrapper.orderByDesc("id");

List<User> users.userMapper.selectList(querywrapper);

users.forEach(System.out::println);

(6)last

直接拼接到 sql 的最后

注意:只能调用一次多次调用以最后一次为准有 sql 注入的风险请谨慎使用

@Test

public vold testSelectListLast()

QueryWrapper<User> querywrapper=new Querywrapper<>();

querywrapper.last("limit 1");

List<User> users = userMapper.selectList(queryhirapper);

users.forEach(System.out::println);

(7)指定要查询的列

@Test

public vold testSelectListColumn()

Querywrapper <User> querywrapper = new Querywrappero>();

querywrapper.select("id","name","age" );

List<User> users.userMapper.selectList(querywrapper);

users.forEach(System.out::println);

2.代码

//mp 实现复杂查询操作

@Test

public void testSelectQuery()

//创建 QueryWrapper5jk

QueryWrapper<User>wrapper=newQueryWrapper<>();

//通过 QueryWrapper 设置条件//ge.gt.le.It

//查询 age>=30记录

//第一个参数字段名称,第二个参数设置值 wrapper.ge(column:.age",val:30) ;

//eq,ne

//wrapper.eq("name,'lilei");

//wrapper.ne("name",lilei");

//between

//查询年龄20-30

wrapper. between(column:"age",val1:20,val2:30)

//like

wrapper.like(column:name,val:"岳):

//orderByDesc

wrapper.orderByDesc(''id' ) ;

//last

wrapper.last("limit 1")

//指定要查询的列

wrapper.select("id"name)

List<User> users = userMapper.selectList (wrapper);

System.out.println(users) ;

注:

ge、gt、le、lt:>=><=<

eq、ne: =!= <>

like:模糊查询

orderByDesc/Asc:排序

last:语句最后拼接 sql 语句

between:范围

select:指定列

相关文章
SQL XML Java
46 0
|
3月前
|
SQL XML Java
MyBatis Mapper中使用limit参数的查询问题
总结而言,MyBatis中使用 `limit`参数的查询可以高度定制并且灵活,基于方法签名和XML映射文件的组合来达成多样化的查询需求。通过参数化查询和动态SQL,MyBatis可以有效地处理各种复杂情境下的数据库操作,并且将SQL语句的维护与业务代码的编写相分离,提升代码的可维护性和可阅读性。
365 13
|
4月前
|
SQL Java 数据库
解决Java Spring Boot应用中MyBatis-Plus查询问题的策略。
保持技能更新是侦探的重要素质。定期回顾最佳实践和新技术。比如,定期查看MyBatis-Plus的更新和社区的最佳做法,这样才能不断提升查询效率和性能。
182 1
|
7月前
|
SQL XML Java
一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程
一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程
272 69
|
9月前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
912 6
|
9月前
|
XML Java 数据库连接
Mybatis一对一,一对多关联查询
## MyBatis一对一、一对多关联查询详解 MyBatis是一款优秀的持久层框架,提供了灵活的SQL映射功能,支持复杂的数据库操作。本文将详细介绍MyBatis中一对一和一对多关联查询的实现。 ### 一对一关联查询 一对一关联关系指的是一个表中的一条记录与另一个表中的一条记录相关联。例如,一个用户有一个地址信息。 #### 数据库表设计 假设有两个表:`user`和 `address`。 ``` CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE address
231 18
|
10月前
|
XML Java 数据库连接
Mybatis实现RBAC权限模型查询
通过对RBAC权限模型的理解和MyBatis的灵活使用,我们可以高效地实现复杂的权限管理功能,为应用程序的安全性和可维护性提供有力支持。
260 5
|
10月前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
393 3
|
11月前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
285 2
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
12月前
|
SQL Java 数据库连接
mybatis如何仅仅查询某个表的几个字段
【10月更文挑战第19天】mybatis如何仅仅查询某个表的几个字段
474 1