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 相关文章推荐
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
探讨Java中的深浅拷贝问题
Jun 26 Java/Android
Java中多线程下载图片并压缩能提高效率吗
Jul 01 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
idea以任意顺序debug多线程程序的具体用法
Aug 30 Java/Android
使用springMVC所需要的pom配置
Sep 15 Java/Android
Spring Cloud 中@FeignClient注解中的contextId属性详解
Sep 25 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
Java设计模式之代理模式
Apr 22 Java/Android
Java结构型设计模式之组合模式详解
Sep 23 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删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
php中数组最简单的使用方法
2020/12/27 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
javascript读写json示例
2014/04/11 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python读取并写入mat文件的方法
2019/07/12 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
python pycharm的安装及其使用
2019/10/11 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
高中自我鉴定
2013/12/20 职场文书
大四自我鉴定
2014/02/08 职场文书
大型会议策划方案
2014/05/17 职场文书
励志演讲稿600字
2014/08/21 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
社区务虚会发言材料
2014/10/20 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
Python内置数据类型中的集合详解
2022/03/18 Python
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android