赞
踩
String sql = "INSERT INTO XXX (xx,xx,xx) VALUES (?,?,?)";
jdbcTemplate.update(sql, list);
此处的list 类型为ArrayList;
参数放在list中出错 "无效的列类型"
UncategorizedSQLExcetpion
解决方法:
- jdbcTemplate.update(sql, list.toArray())
- //或者
- jdbcTemplate.update(sql, list.get(0),list.get(1),list.get(2))
或者
原因:
此处jdbcTemplate.update() 后面传的是一个可变参数.
此处应传入一个数组,多个对象,当传入一个list时,此处会把它当做数组中的一个对象,后续占位符所对应参数即变为空,
就会出现该错误
public int update(String sql, Object... args) throws DataAccessException {
....
}
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO XXX(xx, xx, xx) VALUES (?,?,?)]; SQL state [99999]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效的列类型
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:645)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:866)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:927)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:937)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。