项目技术点-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:指定列

相关文章
|
4月前
|
Java 数据库连接 数据库
mybatis查询数据,返回的对象少了一个字段
mybatis查询数据,返回的对象少了一个字段
296 8
|
16天前
|
XML Java 数据库连接
Mybatis实现RBAC权限模型查询
通过对RBAC权限模型的理解和MyBatis的灵活使用,我们可以高效地实现复杂的权限管理功能,为应用程序的安全性和可维护性提供有力支持。
48 5
|
1月前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
65 3
|
2月前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
42 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
3月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
634 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
3月前
|
SQL Java 数据库连接
mybatis如何仅仅查询某个表的几个字段
【10月更文挑战第19天】mybatis如何仅仅查询某个表的几个字段
101 1
|
4月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
3月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
87 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
5月前
|
Java 数据库连接 mybatis
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
这篇文章讨论了在已使用MyBatis的项目中引入MyBatis-Plus后出现的"Invalid bound statement (not found)"错误,并提供了解决方法,主要是通过修改yml配置文件来解决MyBatis和MyBatis-Plus共存时的冲突问题。
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
|
5月前
|
Java 关系型数据库 MySQL
1、Mybatis-Plus 创建SpringBoot项目
这篇文章是关于如何创建一个SpringBoot项目,包括在`pom.xml`文件中引入依赖、在`application.yml`文件中配置数据库连接,以及加入日志功能的详细步骤和示例代码。