时间:2016-04-03 00:25 来源: 我爱IT技术网 编辑:52微风
解决iBATIS动态改变查询字段出现“java.sql.SQLException: 列名无效” 错误的方法

详细的操作方法或具体步骤1打开iBATIS XML配置文件

当x=1查询的时候列名是a, 如果第一次查询x=1,那么第二次查询x=2就会报这个错,因为ibatis保留列名为第一次查询时候的列名a,ibatis可以设置一个参数remapResults="true",每次查询都重新更新列名
当出现如上的动态改变查询列,或者其他方式动态改变的时候,都需要设置remapResults="true"这个属性,因此不至于出现“列名无效”的错误。
其实,这个错误抛出的地方是resultSet.getString(“xx”);方法,因为iBATIS保留了第一次的列名,所以第二次查询的时候resultSet获得的还是第一次保留下来的列名。

还有一种情况是,在类里面,编号动态SQL语句

这样,你也需要把XML增加remapResults="true"这个属性

以上方法是解决了“java.sql.SQLException: 列名无效”
同是此方法也可以解决iBATIS动态改变查询字段,实现动态SQL语句功能
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
