MyBatis-Plus_实体作为条件构造器构造方法的参数
查询专栏:MP默认查询原则
查询的是数据库列名非实体类属性。
实体作为条件构造器构造方法的参数
文章目录
/*** 1.传递的参数如果是实体类* <p>* 注:这种情况传递过来的参数是等值的也就是=* 如果不想等值,例如:like '条件'* 在实体类中,需要处理属性的上面添加@TableField(condition ="%s<#{%s}")* <p>* 里面的condition,可以采用已经有的栗子,如果没有符合你需求的,* 可以参考SqlCondition(比较条件常量定义类)它的形式,仿写除符合自己需求的condition* <p>* 例如:age 小于 条件* age < '传过来的条件'** @TableField(condition ="%s<,#{%s}")* age*/@Testpublic void selectByWrapperEntity() {User whereUser = new User();whereUser.setName("刘雨红");whereUser.setAge(32);QueryWrapper<User> queryWrapper = new QueryWrapper<User>(whereUser);List<User> userList = userMapper.selectList(queryWrapper);userList.forEach(System.out::println);}/*sql形式:SELECT id,name,age,email,manager_id,create_time FROM user WHERE name=? AND age=?不等值的sql:SELECT id,name,age,email,manager_id,create_time FROM user WHERE name LIKE CONCAT('%',?,'%') AND age<?*/
/*** 2.传递的参数如果是实体类和参数条件同时存在,这种情况互不影响,条件都会拼接在where后边* <p>* 注意:不要重复了*/@Testpublic void selectByWrapperEntity2() {User whereUser = new User();whereUser.setName("刘雨红");whereUser.setAge(32);QueryWrapper<User> queryWrapper = new QueryWrapper<>(whereUser);queryWrapper.like("name", "雨").lt("age", 40);List<User> userList = userMapper.selectList(queryWrapper);userList.forEach(System.out::println);}/*sql形式:SELECT id,name,age,email,manager_id,create_time FROM userWHERE name=? AND age=? AND name LIKE ? AND age < ?*/
实体类:
@Data
public class User {// 主键private Long id;//姓名@TableField(condition = SqlCondition.LIKE)private String name;//年龄@TableField(condition ="%s<#{%s}")private Integer age;//邮箱private String email;// 上级idprivate Long manager_id;//创建时间private LocalDateTime createTime;
}
参考SqlCondition类的源码,自定义符合自己需求的表达式
/*** SQL 比较条件常量定义类** @author hubin* @since 2018-01-05*/
public class SqlCondition {/*** 等于*/public static final String EQUAL = "%s=#{%s}";/*** 不等于*/public static final String NOT_EQUAL = "%s<>#{%s}";/*** % 两边 %*/public static final String LIKE = "%s LIKE CONCAT('%%',#{%s},'%%')";/*** % 左*/public static final String LIKE_LEFT = "%s LIKE CONCAT('%%',#{%s})";/*** 右 %*/public static final String LIKE_RIGHT = "%s LIKE CONCAT(#{%s},'%%')";}
想学习更多微服务、分布式、中间件、数据库、项目快速构建等系列技术
请访问http://gblfy.com
让我们一起进步!!!
MyBatis-Plus_实体作为条件构造器构造方法的参数相关推荐
- MyBatis-Plus 条件构造器之condition参数
推荐:MyBatis Plus汇总 MyBatis-Plus 条件构造器之condition参数 首先创建一个数据库表,如下图所示: 然后创建一个Spring Boot项目,pom.xml和配置如下: ...
- SpringBoot项目集成Mybatis Plus(五)条件构造器
Mybatis Plus 提供了强大的条件构造器,在不写sql映射文件的情况下,完成复杂的查询和修改数据的操作. 条件构造器用于生成sql的where条件,包括 QueryWrapper, Updat ...
- 第 4 章 MybatisPlus 条件构造器
第 4 章 MybatisPlus 条件构造器 1.CRUD API 的思考 对于 BaseMapper 中基本 CRUD 方法的思考 继承了 BaseMapper 接口后,我们只能获得基本的 CRU ...
- Mybatis Plus使用,条件拼装、自定义分页、多数据源
MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生.文档地址:https://mybatis.plus/gui ...
- MyBatisPlus条件构造器Condition的用法
场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 基础搭建: https://blog.csdn.net/B ...
- MybatisPlus条件构造器说明以及selectPage方法
场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 基础搭建: https://blog.csdn.net/B ...
- MybatisPlus学习(四)条件构造器Wrapper方法详解
https://www.cnblogs.com/xianz666/p/13857733.html MybatisPlus学习(四)条件构造器Wrapper方法详解 文章目录 1.条件构造器 2.Que ...
- MP条件构造器Wrapper
5.1 概述 我们在实际操作数据库的时候会涉及到很多的条件.所以MP为我们提供了一个功能强大的条件构造器 Wrapper .使用它可以让我们非常方便的构造条件. 其继承体系如下: 在其子类Ab ...
- MyBatis中的多条件查询
mybatis的多条件查询是后台开发中常见的一种需求,下面直接展示需要实现的效果图: 如上图,我们需要根据四个条件来查询简历信息,而且需求允许某些条件为空,还有一个就是时间段的查询,如果我们使用的常规 ...
最新文章
- Win32汇编_基础
- Hologres揭秘:高性能原生加速MaxCompute核心原理
- [转] Lock-Free 数据结构
- Swift之深入解析“对象”的底层原理
- 将张量转换为 int32 类型
- 南京软件测试自学英语,南京软件测试门槛高吗?南京软件测试学哪些
- 2017哈尔滨ACM CCPC-final 总结
- java 占位符_Java重要知识点
- PrimaDonna智能咖啡机,咖啡也要私人定制
- 百度迁徙 迁入人口和迁徙规模爬虫
- Redis报错:WRONGTYPE Operation against a key holding the wrong kind of value
- window 获取cpu型号_教你如何修改电脑上的CPU型号信息!
- 智能指针手表_反对智能手表
- iOS 加载本地gif缓慢
- 蝙蝠侠最新截图----光影的典型例证
- 开发者必看|Android 8.0 新特性及开发指南
- “欲望像海水,喝得越多,越是口渴。”欲望过多,
- ABP官方文档(五)【多租户】
- 基于PHP的租赁商城系统(包括数据库和后台)
- 【佳学基因人工智能解码技术系列】在CENTOS环境下安装ANACOND