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 相关文章推荐
Spring boot应用启动后首次访问很慢的解决方案
Jun 23 Java/Android
使用feign服务调用添加Header参数
Jun 23 Java/Android
SpringBoot整合JWT的入门指南
Jun 29 Java/Android
JavaWeb Servlet实现网页登录功能
Jul 04 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
Aug 30 Java/Android
Java基于Dijkstra算法实现校园导游程序
Mar 17 Java/Android
Android开发之WECHAT微信小程序路由跳转的两种形式
Apr 12 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
May 30 Java/Android
Android开发手册自定义Switch开关按钮控件
Jun 10 Java/Android
Java实现HTML转为Word的示例代码
Jun 28 Java/Android
HttpClient实现文件上传功能
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+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
python求质数列表的例子
2019/11/24 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
后勤岗位职责
2013/11/26 职场文书
心理健康课教学反思
2014/02/13 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
企业宣传工作方案
2014/06/02 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2019公司管理制度
2019/04/19 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL