240 发简信
IP属地:安徽
  • @千年的心
    您好,针对于第一种情况,在业务层进行条件构造产生的模糊查询关键字,使用QueryWrapper,LambdaQueryWrapper 是可以解决的,我遇到的问题属于第三种情况,传参为 Map 结构,然后在 mapper 层通过 xml 写的 sql。

    mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器

    在开发中,我们通常会遇到这样的情况。用户在录入信息是录入了‘%’,而在查询时无法精确匹配‘%’。究其原因,‘%’是MySQL的关键字,如果我们想要精确匹配‘%’,那么需要对其...

  • 您好,请教您一个问题,有这样的场景,如:
    public R queryObjPage(@RequestParam Map<String, Object> params) {
    // 假设 params.name 含有特殊字符为 44%
    PageUtils page = objService.queryObjPage(params);
    // 查询后经过 拦截器处理后 params.name 为 44\%
    ...
    // 此时再引用就会重复转义 params.name 为 44\\\%
    Map<String, List> assetGroupBy = objService.queryObjGroupBy(params);
    ...
    return result;
    }
    因为 mybatis sql 拦截器是对参数值进行修改,如果多次引用就会造成问题,可以通过克隆方式解决:
    public R queryObjPage(@RequestParam Map<String, Object> params) {
    // 克隆参数
    PageUtils page = objService.queryObjPage(ObjectUtil.clone(params));
    ...
    // 克隆参数
    Map<String, List> assetGroupBy = objService.queryObjGroupBy(ObjectUtil.clone(params));
    ...
    return result;
    }
    但全局有多出此类场景,浅克隆方式不大方便,请问您有好的解决办法么

    mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器

    在开发中,我们通常会遇到这样的情况。用户在录入信息是录入了‘%’,而在查询时无法精确匹配‘%’。究其原因,‘%’是MySQL的关键字,如果我们想要精确匹配‘%’,那么需要对其...