ibatis直接传入sql进行查询会有长度或者效率等的问题么?

发布于 2022-01-01 20:30:00 字数 894 浏览 837 评论 2

  生产环境上由于各种原因。一套小应用的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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清欢 2022-01-06 03:43:07
<select id="selectCustomSql" parameterType="string" resultType="java.util.Map">
   <![CDATA[ ${value} ]]>
   </select>

这样写是可以的

终止放荡 2022-01-05 13:05:49

sql是配置在数据库里。不是拼出来的。因为太长,报错的sql我用。。。。。代替了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文