我正在使用 spring jdbcTemplate.batchupdate 插入一组记录。
String SQL_QUERY = "UPDATE RECORD_TABLE SET VALUE=?,LAST_UPDATE=?, LAST_USERNAME=? WHERE RECORD_NBR=?"
List<Object[]> updateParams = new Object[]{
myDomainVO.getBigDoubleValue(),
myDomainVO.getLastupdateDate(),
myDomainVO.getLastUserName(),
myDomainVO.getRecordNbr()
};
getJdbcTemplate().batchupdate(sql,updateParams);
现在我的域对象有一个 22 位的双精度值,但是当我执行此代码时,数据库会更新为 2147483647,即 Integer.MAX_VALUE。
我还尝试将 int[] argType 作为 batchUpdate 中的第三个参数传递为
int[] updateParamType = new int[]{
Types.DOUBLE,Types.DATE,Types.VARCHAR,Types.NUMERIC
}
谁能解释为什么它的行为如此?
仅供参考,我正在使用 oracle 11g。