信息发布→ 登录 注册 退出

MybatisPlus EntityWrapper如何自定义SQL

发布时间:2026-01-11

点击量:
目录
  • EntityWrapper自定义SQL
    • 第一种
    • 第二种
    • 第三种
  • MybatisPlus自定义sql查询

    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);
        }
    }
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!