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垃圾回收器
Jun 16 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 Java/Android
java中用float时,数字后面加f,这样是为什么你知道吗
Sep 04 Java/Android
MyBatis自定义SQL拦截器示例详解
Oct 24 Java/Android
解析探秘fescar分布式事务实现原理
Feb 28 Java/Android
Spring Security使用单点登录的权限功能
Apr 03 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Spring Boot接口定义和全局异常统一处理
Apr 20 Java/Android
Spring Data JPA框架自定义Repository接口
Apr 28 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
Spring中的@Transactional的工作原理
Jun 05 Java/Android
Spring boot实现上传文件到本地服务器
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下网站防IP攻击代码,超级实用
2010/10/24 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
javascript读取xml
2006/11/04 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
python不带重复的全排列代码
2013/08/13 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
python看某个模块的版本方法
2018/10/16 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
如何进行Linux分区优化
2013/02/12 面试题
销售顾问的岗位职责
2013/11/13 职场文书
村党支部公开承诺书
2014/05/29 职场文书
学校宣传标语
2014/06/18 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
民主评议党员工作总结
2014/10/20 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
居住证明范文
2015/06/17 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python