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 相关文章推荐
SpringCloud Alibaba 基本开发框架搭建过程
Jun 13 Java/Android
分析Netty直接内存原理及应用
Jun 14 Java/Android
Java数据结构之链表相关知识总结
Jun 18 Java/Android
详解SpringBoot异常处理流程及原理
Jun 21 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
java如何实现获取客户端ip地址的示例代码
Apr 07 Java/Android
Android Rxjava3 使用场景详解
Apr 07 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 Java/Android
SpringBoot全局异常处理方案分享
May 25 Java/Android
JavaScript正则表达式实现注册信息校验功能
May 30 Java/Android
Android中View.post和Handler.post的关系
Jun 05 Java/Android
SpringBoot Http远程调用的方法
Aug 14 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
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Python通过socketserver处理多个链接
2020/03/18 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
医院总经理职责
2013/12/26 职场文书
毕业生自荐书
2014/02/03 职场文书
书香校园建设方案
2014/05/02 职场文书
政协委员个人总结
2015/03/03 职场文书
女性健康讲座主持词
2015/07/04 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
python微信智能AI机器人实现多种支付方式
2022/04/12 Python