不支持JDBC 3.0 getParameterType调用

时间:2013-11-15 09:20:44

标签: java mysql sql jdbc spring-jdbc

我在尝试插入行时遇到异常

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;
}

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的例外情况,因为类型没有被指定为第三个参数。