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 相关文章推荐
ConstraintValidator类如何实现自定义注解校验前端传参
Jun 18 Java/Android
java中重写父类方法加不加@Override详解
Jun 21 Java/Android
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
Jul 01 Java/Android
Java使用Unsafe类的示例详解
Sep 25 Java/Android
SpringBoot2零基础到精通之异常处理与web原生组件注入
Mar 22 Java/Android
Spring Boot项目传参校验的最佳实践指南
Apr 05 Java/Android
Flutter Navigator 实现路由传递参数
Apr 22 Java/Android
java开发双人五子棋游戏
May 06 Java/Android
Android RecyclerView实现九宫格效果
Jun 28 Java/Android
java实现web实时消息推送的七种方案
Jul 23 Java/Android
IDEA中sout快捷键无效问题的解决方法
Jul 23 Java/Android
Java中的Kafka为什么性能这么快及4大核心详析
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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php解析json数据实例
2014/08/19 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
python ddt实现数据驱动
2018/03/14 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
python实现图像全景拼接
2020/03/27 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
python网络编程之五子棋游戏
2020/05/14 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
你常见到的runtime exception
2016/09/05 面试题
德尔福集团DELPHI的笔试题
2012/02/22 面试题
文员自我评价怎么写
2013/09/19 职场文书
小学开学寄语
2014/01/19 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
公积金具结保证书
2015/05/11 职场文书
网络研修心得体会
2016/01/08 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL