Cause: java.sql.SQLException: ORA-01000: 超出打开游标的最大数; uncategorized SQLException; SQL state [72000]; error code [1000]; ORA-01000: 超出打开游标的最大数; nested exception is java.sql.SQLException: ORA-01000: 超出打开游标的最大数
我出错的地方:
<select id="xxxxxxx" parameterType="map" resultType="java.util.HashMap">
${sql}
</select>
解决方法: 加上非预编译 statementType=“STATEMENT”, ${ } 在service动态拼接了参数 要加上这个属性
<select id="xxxxxxx" parameterType="map" resultType="java.util.HashMap" statementType="STATEMENT">
${sql}
</select>
如果着急解决问题,可以试试上面的解决方法
#{} 和 ${} 主要区别
#{ } 参与预编译,可以有效的防止sql注入
${ } 将字符串原封不动的搬了过来,不参与预编译,存在sql注入
注意:mapper 上面加上这个属性 statementType=“STATEMENT” #{ } 就不生效了
可以先扩大游标试试,如果扩大了之后还是不行,就是代码问题了。