Mybatis通过原生sql查询Map结果集注意事项

背景:

开发中有时会遇到各种事,比如项目组有Utils类方法,解析脚本后得到一个较长的sql语句,通过原生jdbc的原生ps方法查询时查不到数据的情况。

首先个人肯定是不建议在Utils里解析脚本后拼接sql的,存在sql注入的危险。

那如何用myabtis动态生成sql(整个sql都是动态的,不确定性非常大,sql来源于脚本),又得防止sql注入问题?

最好的办法还是在脚本生成的步奏进行限制,对某些关键字进行限制,保存时进行过滤。

现在项目赶着上线,ps出现了映射问题,查询交给了mybatis去查询,参数只有一个,就是这个解析后的sql,返回结果为hashmap(属性和值都不确定)

需要注意的是$符号,因为整个sql语句里一定存在关键符号,防止被转义使用${str}把原sql完整设置上去。

 mapper接口里要加上@Param

 最后查询结果map里只会有有值的key-value对

发布了61 篇原创文章 · 获赞 54 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/bibiboyx/article/details/102852945