求助!!!mybatis like 特殊字符问题。
丶小HI 2017-04-01 10:20:00 小弟刚接触Mybatis,项目中使用存储过程查询数据,查询条件中带有特殊字符,不知该如何使用占位符?
具体描述:
数据库中调用时正常执行,该语句为:Execute QryCust 'Project Like ''''%工业项目%'''''
在JAVA后台中拼接好字符串 qryStr = " Project Like ''''%工业项目%'''' ";
Mybatis中使用占位符:
Execute QryCust #{qryStr}
Mybatis打印参数值:
==> Parameters: Project Like ''''%工业项目%''''(String)
报错:
### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 列名 '工业项目' 无效。
说明:
1、因为存储过程的参数可能是精确查找,可能是模糊查找,可能长度不限,所以没有使用传统的:name like '%'+#{name}+'%'
2、尝试了按照该方式去拼接字符串,还是报错:索引超出范围
3、不使用占位符,直接将字符串放入Mybatis查询中,结果正常。(但是因为是动态的,所以无法写死)
望有大神能帮忙解答或给出别的解决思路,万分感谢!