在使用Mybatis 接口编程 向Oracle数据库添加一条记录,出现错误。
错误信息:
- SQL state [99999]; error code [17004]; 无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor;
- nested exception is java.sql.SQLException: 无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor
错误原因:主键非自增,即使手动设置主键的值也会出错。
解决方法:因为useGeneratedKeys 要求数据库本身具备主键自动增长的功能。Oracle无法在单表内设置主键自增,所以更改映射xml文件中insert的useGeneratedKeys的值,将true改为false
<insert id="addUser