mybatisplus getSqlSegment的and问题

本文介绍Mybatis-Plus 3.10版本后,如何在不自动添加and的情况下手动管理SQL条件的and连接,以及提供相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis-plus的${ew.sqlSegment}的and问题

${ew.customSqlSegment} 不需要where标签包裹

${ew.sqlSegment} 需要where,在条件的开头会不会自动拼接and?在3.x版本好像去掉了在开头拼接and(我看源码下来,没有看到有拼接and,如果在哪里有,请告知下,谢谢),所以就自己去拼接and了,简单继承了下。

MyQueryWrapper.java
/**
 *
 * <p>
 *     mybatis plus 3.10以后的版本 {@link AbstractWrapper#getSqlSegment()}不支持在sql开头自动添加and,所以需要自己添加and。
 *     使用方式与原先基本一致,在sql中使用时使用${ew.sql}获取sql语句
 * </p>
 */
public class MyQueryWrapper extends QueryWrapper {

    public String getSql() {
        return WrapperUtil.concatAnd(this);
    }
}
WrapperUtil.java
public class WrapperUtil {

    public static String concatAnd(QueryWrapper queryWrapper) {
        String sql = queryWrapper.isEmptyOfNormal() ? "" : "and " + queryWrapper.getSqlSegment();
        return sql;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值