使用jdbctemplate插入查询会产生异常UncategorizedSQLException

时间:2017-11-02 06:59:18

标签: java sql-server spring spring-jdbc jdbctemplate

我正在使用jdbctemplate进行插入查询。此查询在SQL Server Studio中正常工作。但是当我使用jdbctemplate时,这给出了UncategorizedSQLException的例外

总例外

 org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO Test (ID, NAME) VALUES (?, ?)]; SQL state [null]; error code [0]; The conversion from UNKNOWN to UNKNOWN is unsupported.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from UNKNOWN to UNKNOWN is unsupported.

我的代码是

sqlServerJdbcTemplate.update(
        "INSERT INTO Test (ID, NAME) VALUES (?, ?)",
        new Object[]{101, "Dave"},
        new Object[]{Types.INTEGER, Types.VARCHAR}
);

只有两列ID和NAME的Integer和varchar类型。

此流程中的问题是什么?任何想法都将不胜感激。

P.S:SQL服务器是数据库

1 个答案:

答案 0 :(得分:2)

要避免此问题,您可以删除new Object[]{Types.INTEGER, Types.VARCHAR}并让DBMS检测每个输入的类型:

sqlServerJdbcTemplate.update(
        "INSERT INTO Test (ID, NAME) VALUES (?, ?)",
        new Object[]{101, "Dave"}
);