我在尝试插入行时遇到异常
java.sql.SQLException: Parameter metadata not available for the given statement
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.MysqlParameterMetadata.checkAvailable(MysqlParameterMetadata.java:70)
at com.mysql.jdbc.MysqlParameterMetadata.getParameterType(MysqlParameterMetadata.java:119)
at org.springframework.jdbc.core.StatementCreatorUtils.setNull(StatementCreatorUtils.java:231)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:213)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:144)
at org.springframework.jdbc.core.ArgumentPreparedStatementSetter.doSetValue(ArgumentPreparedStatementSetter.java:65)
at org.springframework.jdbc.core.ArgumentPreparedStatementSetter.setValues(ArgumentPreparedStatementSetter.java:46)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:822)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:818)
当我的插入成功时,但在看到控制台后我发现插入过程中出现异常。
虽然这个异常并没有阻止我的流程,但是当实际插入时出现错误时会导致潜在问题,例如我在表中有唯一列,当我尝试使用重复列值时,我没有得到MySQLIntegrityConstraintViolationException,我需要处理这件事。
编辑: -
public int addUserAcc(UserDO userDO)
throws UserDataException {
JdbcTemplate jd = this.getJdbctemplate();
try {
Long userId= jd.queryForObject(USER_KEY,
Long.class);
jd.update(ADD_USERACC, new Object[] { userId,
userDO.getFirstName(), userDO.getLastName(),
userDO.getMobile(), userDO.getEmail(),
userDO.deleteFlag() });
} catch (DataAccessException dExp) {
throw new UserDataException(
"error creating user ", dExp);
}
return 0;
}
感谢您的回答。
答案 0 :(得分:0)
我遇到了同样的例外情况,因为类型没有被指定为第三个参数。