首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

解决iBATIS动态改变查询字段出现“java.sql.SQLException: 列名无效” 异常的方法

2012-11-01 
解决iBATIS动态改变查询字段出现“java.sql.SQLException:列名无效” 错误的方法select idXX resultpara

解决iBATIS动态改变查询字段出现“java.sql.SQLException: 列名无效” 错误的方法

<select id="XX" resultparameter>     select yyyymmdd,     <isNotEmpty prepend=" " property="user_type">          <isEqual property="x" compareValue="1">              a          </isEqual>            <isEqual property="x" compareValue="2">              b         </isEqual>   </isNotEmpty>

?

当x=1查询的时候列名是a, 如果第一次查询x=1,那么第二次查询x=2就会报这个错,因为ibatis保留列名为第一次查询时候的列名a,ibatis可以设置一个参数remapResults="true",每次查询都重新更新列名,

<select id="XX" resultparameter remapResults="true"

?当出现如上的动态改变查询列,或者其他方式动态改变的时候,都需要设置remapResults="true"这个属性,因此不至于出现“列名无效”的错误。

其实,这个错误抛出的地方是resultSet.getString(“xx”);方法,因为iBATIS保留了第一次的列名,所以第二次查询的时候resultSet获得的还是第一次保留下来的列名。

热点排行