调用 update() 函数时出现错误消息:不支持从 UNKNOWN 到 UNKNOWN 的转换
error message when calling update() function : The conversion from UNKNOWN to UNKNOWN is unsupported
下面的函数应该使用 NamedJdbcTemplate
:
执行插入数据库
public int create(Customer entity) {
NamedParameterJdbcTemplate template = getDataSource(TENANT, ENVIRONMENT);
MapSqlParameterSource paramMap = new MapSqlParameterSource()
.addValue("compid", entity.getCompID())
.addValue("tradercode", entity.getTraderCode())
.addValue("title", entity.getTitle())
// ... other params
return template.update(INSERT_QUERY, paramMap);
}
但是我在调用时收到此错误消息
com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from UNKNOWN to UNKNOWN is unsupported.
部分参数无法被驱动程序转换。您可以尝试一一评论,找出问题。
通常,将值作为字符串传递就可以了:
.addValue("tradercode", entity.getTraderCode().toString())
在尝试更多之后,通过在 MapSqlParameterSource
中提供 sqlType
似乎可以解决问题:
public int create(Customer entity) {
NamedParameterJdbcTemplate template = getDataSource(TENANT, ENVIRONMENT);
MapSqlParameterSource paramMap = new MapSqlParameterSource()
.addValue("compid", entity.getCompID(), Types.VARCHAR)
.addValue("tradercode", entity.getTraderCode(), Types.VARCHAR)
.addValue("title", entity.getTitle(), Types.VARCHAR)
// ... other params
return template.update(INSERT_QUERY, paramMap);
}
下面的函数应该使用 NamedJdbcTemplate
:
public int create(Customer entity) {
NamedParameterJdbcTemplate template = getDataSource(TENANT, ENVIRONMENT);
MapSqlParameterSource paramMap = new MapSqlParameterSource()
.addValue("compid", entity.getCompID())
.addValue("tradercode", entity.getTraderCode())
.addValue("title", entity.getTitle())
// ... other params
return template.update(INSERT_QUERY, paramMap);
}
但是我在调用时收到此错误消息
com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from UNKNOWN to UNKNOWN is unsupported.
部分参数无法被驱动程序转换。您可以尝试一一评论,找出问题。
通常,将值作为字符串传递就可以了:
.addValue("tradercode", entity.getTraderCode().toString())
在尝试更多之后,通过在 MapSqlParameterSource
中提供 sqlType
似乎可以解决问题:
public int create(Customer entity) {
NamedParameterJdbcTemplate template = getDataSource(TENANT, ENVIRONMENT);
MapSqlParameterSource paramMap = new MapSqlParameterSource()
.addValue("compid", entity.getCompID(), Types.VARCHAR)
.addValue("tradercode", entity.getTraderCode(), Types.VARCHAR)
.addValue("title", entity.getTitle(), Types.VARCHAR)
// ... other params
return template.update(INSERT_QUERY, paramMap);
}