开发者社区> 问答> 正文

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.............

网上搜索了好多,但没有比较满意的答案。请问各位有没有这方面的经验能告知一二,谢谢各位了。

展开
收起
爱吃鱼的程序员 2020-06-08 10:33:33 530 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你是在拼sql?

    sql是配置在数据库里。不是拼出来的。因为太长,报错的sql我用。。。。。代替了。
    <selectid="selectCustomSql"parameterType="string"resultType="java.util.Map"><![CDATA[${value}]]></select>

    这样写是可以的

    2020-06-08 10:33:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载