ibatis直接传入sql进行查询会有长度或者效率等的问题么?
生产环境上由于各种原因。一套小应用的ibatis做了调整。部分功能由之前常规的xml配置处理,改为了使用原生sql语句后直接执行。即传入配置表中的sql语句直接进行查询。
xml配置
<select id="executeSql" resultClass="java.util.HashMap" remapResults="true" parameterClass="java.lang.String" timeout="60">
<![CDATA[ $sql$ ]]>
</select>
java代码
public List<Map<String, Object>> selectCheckList(String sql) {
return (List<Map<String, Object>>) baseDao.queryForList("executeSql", sql);
}
功能能够正常进行查询。但是,会碰到有些比较长的sql查询后,控制台报错。但仍然能够返回结果。sql语句放在plsql中能够正常执行。
控制台异常信息
2017-9-30 13:14:12 com.upic.upfa.app.persistence.dao.ibatis.BaseDAO logSql
严重: [SQL],executeSql,32323,inefficient,select * from xxxxx.............
网上搜索了好多,但没有比较满意的答案。请问各位有没有这方面的经验能告知一二,谢谢各位了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这样写是可以的
sql是配置在数据库里。不是拼出来的。因为太长,报错的sql我用。。。。。代替了。