JdbcTemplate 無效的列類型 UncategorizedSQLException

    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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章