当前位置:   article > 正文

JdbcTemplate 无效的列类型 UncategorizedSQLException_preparedstatementcallback; uncategorized sqlexcept

preparedstatementcallback; uncategorized sqlexception for sql

    String sql = "INSERT INTO XXX (xx,xx,xx) VALUES (?,?,?)";
    jdbcTemplate.update(sql, list);

    此处的list 类型为ArrayList;
    参数放在list中出错 "无效的列类型"
    UncategorizedSQLExcetpion

   解决方法:
    

  1. jdbcTemplate.update(sql, list.toArray())
  2. //或者
  3. 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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/141571
推荐阅读
相关标签
  

闽ICP备14008679号