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项目实战之nacos-server服务搭建过程
Jun 21 Java/Android
启动Tomcat时出现大量乱码的解决方法
Jun 21 Java/Android
探讨Java中的深浅拷贝问题
Jun 26 Java/Android
Springboot集成阿里云OSS上传文件系统教程
Jun 28 Java/Android
Java实现房屋出租系统详解
Oct 05 Java/Android
MyBatis自定义SQL拦截器示例详解
Oct 24 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
Java设计模式之享元模式示例详解
Mar 03 Java/Android
关于EntityWrapper的in用法
Mar 22 Java/Android
Java中Quartz高可用定时任务快速入门
Apr 03 Java/Android
Java Lambda表达式常用的函数式接口
Apr 07 Java/Android
Java 写一个简单的图书管理系统
Apr 26 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
其他功能
2006/10/09 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
Javascript实现单例模式
2016/01/24 Javascript
javascript实现简易计算器
2017/02/01 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
vue中轮训器的使用
2019/01/27 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
python编程实现归并排序
2017/04/14 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
python自动化办公操作PPT的实现
2021/02/05 Python
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
办公室前台岗位职责
2014/01/04 职场文书
小学毕业感言150字
2014/02/05 职场文书
道路建设实施方案
2014/03/18 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
社区先进事迹材料
2014/05/19 职场文书
美术社团活动总结
2014/06/27 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
2014年财政局工作总结
2014/12/09 职场文书
2014年度个人总结范文
2015/03/09 职场文书
少年雷锋观后感
2015/06/10 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP