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 相关文章推荐
详解JAVA中的OPTIONAL
Jun 14 Java/Android
详解Spring Boot使用系统参数表提升系统的灵活性
Jun 30 Java/Android
dubbo服务整合zipkin详解
Jul 26 Java/Android
Spring-cloud Config Server的3种配置方式
Sep 25 Java/Android
java代码实现空间切割
Jan 18 Java/Android
Java字符串逆序方法详情
Mar 21 Java/Android
零基础学java之带返回值的方法的定义和调用
Apr 10 Java/Android
Android开发实现极为简单的QQ登录页面
Apr 24 Java/Android
Java实现带图形界面的聊天程序
Jun 10 Java/Android
Spring Cloud OpenFeign模版化客户端
Jun 25 Java/Android
Java+swing实现抖音上的表白程序详解
Jun 25 Java/Android
SpringBoot接入钉钉自定义机器人预警通知
Jul 15 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读取MySQL数据代码
2008/06/05 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Python 查看文件的读写权限方法
2018/01/23 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
专科毕业生就业推荐信
2013/11/01 职场文书
员工培训心得体会
2013/12/30 职场文书
初一科学教学反思
2014/01/27 职场文书
《自然之道》教学反思
2014/02/11 职场文书
成龙洗发水广告词
2014/03/14 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
高中同学会致辞
2015/08/01 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python