mybatis 对于特殊字符问题处理
  <select id="getVagueQuery" parameterType="java.lang.String" resultType="com.kangwei.pojo.tz.T_SB_SCFZSS_SD">
        SELECT
            OBJ_ID,
            JMLX,
            DMCC,
            SDCD,
            JSL,
            SGDW,
            JGRQ,
            YWDWMC,
            WHBZMC,
            SDMC,
            SDBH,
            WHBZ,
            ZCXZ,
            DAMC
        FROM SCYW.T_SB_SCFZSS_SD
        WHERE SCYW.T_SB_SCFZSS_SD.SDBH LIKE concat(concat('%', #{value}), '%') OR SCYW.T_SB_SCFZSS_SD.SDMC LIKE concat(concat('%', #{value }), '%')
    </select>

图片说明

输入%,传进去的也是一个%,但是查询出来了所有数据,网上查的对传入的百分号加上[]就可以了,试了一下确实可以.我是在java代码里判段的,感觉我这个方法还是不好,如果遇到其他特殊字符还是不行,下面是我代码,大神们还有其他方法吗

  if(newContent.equals("%")){
            String newContent1 = "[%]";
            System.out.println(newContent1);
            return sdService.getVagueQuery(newContent1, page, limit);
        }

2个回答

编写一个方法 用来把前台穿过来的参数的特殊字符 替换成 想要的格式

sinat_38913556
sinat_38913556 或者 你不管是不是特殊字符 都加上[ ] 应该也可以
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐