`
OpenMind
  • 浏览: 177409 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring2.5.6 的一段源码疑似bug

阅读更多

在AbstractJdbcInsert类中的方法:

	private void setParameterValues(PreparedStatement preparedStatement, List<Object> values, int[] columnTypes)
			throws SQLException {
		int colIndex = 0;
		for (Object value : values) {
			colIndex++;
			if (columnTypes == null || colIndex < columnTypes.length) {
				StatementCreatorUtils.setParameterValue(preparedStatement, colIndex, SqlTypeValue.TYPE_UNKNOWN, value);
			}
			else {
				StatementCreatorUtils.setParameterValue(preparedStatement, colIndex, columnTypes[colIndex - 1], value);
			}
		}
	}

 

 

看这里 if (columnTypes == null || colIndex < columnTypes.length) 
为何colIndex < columnTypes.length时要使用SqlTypeValue.TYPE_UNKNOWN呢,应该这样的吧:
if (columnTypes == null || colIndex > columnTypes.length) {
				StatementCreatorUtils.setParameterValue(preparedStatement, colIndex, SqlTypeValue.TYPE_UNKNOWN, value);
			}
			else {
				StatementCreatorUtils.setParameterValue(preparedStatement, colIndex, columnTypes[colIndex - 1], value);
}

 

分享到:
评论
1 楼 OpenMind 2013-04-11  
Spring3.0+修复了这个bug

相关推荐

Global site tag (gtag.js) - Google Analytics