MybatisPlus EntityWrapper如何自定义SQL


Posted in Java/Android onMarch 22, 2022

EntityWrapper自定义SQL

在mybatis plus中根据条件构造器,构建SQL查询是很方便的,使用条件构造器可以替代我们写SQL。下面我们看几个例子。

第一种

使用T selectOne(Wrapper<T> wrapper);我们只需要传递入我们创建一个EntityWrapper()并将条件拼接好就可以。

例如new EntityWrapper().eq("id","1")就是查询id等于1的这条数据。这里不仅仅支持eq(),还有like,not like ,group by等,差不多在SQL中需要的这里都有。

第二种

在单表查询的时候我们需要自定义列的时候则使用setSqlSelect方法,具体如下:

/**此格式的意思为requireParam传参了才创建where条件,请按照此格式撰写代码
*Object为你的单表实体类
*requireParam为入参实体类
*EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam);是为了让构造where条件
*我在前面给requireParam的state属性设置了值为1,所以这里会自动拼接上where条件,如果不需要的话则可不传requireParam
*
*
**/
            EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam);
            /**设置需要查询的列名**/
            ew.setSqlSelect("id,resource_id,user_id,username,content,createtime,parent_id," +
                    " path,type,like_count")
                    /**排序方式**/
                    .orderBy(false,"path",false);

同第一种情况一样,后面可以继续拼接各种条件。

第三种

EntityWrapper()拼接where条件,这个其实在第二种情况中已经讲了,就是根据我们创建EntityWrapper的时候有没有入参来做。

到目前我们只用到了这些,以后遇到了我会继续更新。

MybatisPlus自定义sql查询

public void reconciliationForConfirmOne(Integer Id, Integer payoffType) {
    List<FinanceReconciliationEntity> frList = financeReconciliationService.selectList(
            new EntityWrapper<FinanceReconciliationEntity>()
                    .eq("payoff_id", Id)
                    .eq("payoff_type", payoffType)
                    .where("(reconciliation_status <> 1 OR reconciliation_status IS NULL)")
    );
    for (FinanceReconciliationEntity fr : frList) {
        fr.setReconciliationStatus(1);
    }
    if (frList != null && frList.size() > 0) {
        financeReconciliationService.updateBatchById(frList);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 Java/Android
springboot临时文件存储目录配置方式
Jul 01 Java/Android
Java 泛型详解(超详细的java泛型方法解析)
Jul 02 Java/Android
看完这篇文章获得一些java if优化技巧
Jul 15 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
Java异常处理try catch的基本用法
Dec 06 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Apr 08 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
Spring Boot接口定义和全局异常统一处理
Apr 20 Java/Android
mybatis-plus模糊查询指定字段
Apr 28 Java/Android
Android Studio 计算器开发
May 20 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
Jun 16 Java/Android
SpringBoot2零基础到精通之数据库专项精讲
Mar 22 #Java/Android
Spring Bean是如何初始化的详解
Mar 22 #Java/Android
关于EntityWrapper的in用法
Mar 22 #Java/Android
SpringBoot2零基础到精通之异常处理与web原生组件注入
Mar 22 #Java/Android
Java字符串逆序方法详情
Mar 21 #Java/Android
剑指Offer之Java算法习题精讲二叉树的构造和遍历
剑指Offer之Java算法习题精讲二叉树专项训练
You might like
.htaccess文件保护实例讲解
2011/02/06 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
vue项目实现图片上传功能
2019/12/23 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中asyncore的用法实例
2014/09/29 Python
Python生成随机MAC地址
2015/03/10 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python DataFrame 取差集实例
2019/01/30 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
应聘面试自我评价
2014/01/24 职场文书
个人综合鉴定材料
2014/05/23 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
个人股份合作协议书
2014/10/24 职场文书
公司规章制度范本
2015/08/03 职场文书
nginx优化的六点方法
2021/03/31 Servers
详解Vue的options
2021/05/15 Vue.js