【发布时间】:2020-07-28 21:28:51
【问题描述】:
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
List<String> columns = getColumns();
Map<String, Object> = getMap();
KeyHolder createdKey = new GeneratedKeyHolder();
int result = getJdbcTemplate().update((PreparedStatementCreator) con -> {
PreparedStatement ps = con.prepareStatement(sql);
for(int i=0;i<columns.size();i++){
Object value = columnNameValueMap.get(columns.get(i));
if(value instanceof String || value instanceof Date){
ps.setString(i+1, String.valueOf(value));
}else if(value instanceof Boolean){
if(value.equals(true))
ps.setInt(i+1, 1);
else
ps.setInt(i+1, 0);
}else if(value instanceof Integer){
ps.setInt(i+1, (Integer) value);
}else if(value instanceof BigDecimal){
ps.setBigDecimal(i+1, (BigDecimal) value);
}
}
return ps;
},createdKey);
尝试使用 JDBCTemplate 从 java 应用程序执行插入操作时出现上述错误。
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; SQL [] 的未分类 SQLException; SQL 状态 [null];错误代码[0];必须先执行该语句,然后才能获得任何结果。嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException: 必须先执行该语句才能获得任何结果
【问题讨论】:
标签: java sql sql-server spring