2017-06-22 11 views
0

奇妙なJDBC TEMPLATEエラーです。jdbcTemplateエラーargs数を渡す

あなたは以下のコードを使用して、テーブルの上に更新を実行すると、私は次のエラーを取得:

Org.springframework.jdbc.BadSqlGrammarException:PreparedStatementCallbackを。誤ったSQL文法[UPDATE adminformulariocontratacao SET statusatual =? WHERE(formulariouuid =?)];ネストされた例外はjava.sql.SQLExceptionのではない:私は以下の修正が、それが正常に動作するようにしてコードを実行すると、パラメータ2

public void atualizaStatusAtendimentoContratacao(String formulariouuid,String statusGravar) { 

    final String query = "UPDATE adminformulariocontratacao " 
         + "SET statusatual = ? "        
         + "WHERE (formulariouuid = ?)"; 

    Object argsAtualizaStatus = new Object[] { 
      statusGravar, 
      formulariouuid 
     }; 

    try { 
     jdbcTemplate.update(query, argsAtualizaStatus); 
    } catch (DataAccessException e) { 
     logger.log(Level.ERROR, 
       "##ERRO ao Gravar atualização de status do atendimento contratacao:" + e.getLocalizedMessage()); 
    } 

に指定された値なし。違いは何ですか?

public void atualizaStatusAtendimentoContratacao(String formulariouuid,String statusGravar) { 

    final String query = "UPDATE adminformulariocontratacao " 
         + "SET statusatual = ? "        
         + "WHERE (formulariouuid = ?)"; 

    try { 
     jdbcTemplate.update(query, new Object[] {statusGravar,formulariouuid}); 
    } catch (DataAccessException e) { 
     logger.log(Level.ERROR, 
       "##ERRO ao Gravar atualização de status do atendimento contratacao:" + e.getLocalizedMessage()); 
    } 

} 

答えて

0

奇妙なものが何もない。

ソースコードから:場合

@Override 
public int update(String sql, Object... args) throws DataAccessException { 
    return update(sql, newArgPreparedStatementSetter(args)); 
} 

Object argsAtualizaStatus = new Object[] { statusGravar, formulariouuid };

タイプ

Object[] argsAtualizaStatus = new Object[] { statusGravar, formulariouuid };

01オブジェクトでありますあなたがオブジェクトを与える最初の例では、配列

、およびJDBCテンプレートがの配列としてオブジェクトとしてそれを使用しない - あなたは正しい型を与える

jdbcTemplate.update(query, new Object[] {statusGravar,formulariouuid});

タイプは、あなたが行うとき、オブジェクト

の配列です

オブジェクト[] argsAtualizaStatus =新しいオブジェクト[] {statusGravar、formulariouuid:

修正オブジェクト};

+0

あなたは本当に正しいです。私は配列として議論が欠けていたとは考えていませんでした。私の間違い。ありがとうございました! –

関連する問題