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 相关文章推荐
springboot @ConfigurationProperties和@PropertySource的区别
Jun 11 Java/Android
Java内存模型之happens-before概念详解
Jun 13 Java/Android
浅析NIO系列之TCP
Jun 15 Java/Android
Java中PriorityQueue实现最小堆和最大堆的用法
Jun 27 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
Jun 30 Java/Android
Spring实现内置监听器
Jul 09 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
springboot应用服务启动事件的监听实现
Apr 06 Java/Android
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
Apr 13 Java/Android
Android自定义双向滑动控件
Apr 19 Java/Android
Spring Data JPA框架的核心概念和Repository接口
Apr 28 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写日志的实现方法
2014/11/05 PHP
PHP生成树的方法
2015/07/28 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
javascript模块化简单解析
2016/04/07 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
详解python的几种标准输出重定向方式
2016/08/15 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
windows下python和pip安装教程
2018/05/25 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
Python接收手机短信的代码整理
2020/08/02 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
机械电子工程专业推荐信范文
2013/11/20 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python