【问题标题】:For SQL Server database getting "com.microsoft.sqlserver.jdbc.SQLServerException:The statement must be executed before any results can be obtained."对于 SQL Server 数据库获取“com.microsoft.sqlserver.jdbc.SQLServerException:必须执行该语句才能获得任何结果”。
【发布时间】: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


    【解决方案1】:

    将准备调用更改为con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多