首页 > 解决方案 > Spring jdbc 模板中的 BadSqlGrammarException

问题描述

我正在使用 Jdbctemplate 从 db 中检索单个记录。方法如下。

public Advocate queryPrimaryDetails(String regCaseType, String regNo, String regYear) throws SQLException {
        String sql = "select pet_adv,pet_adv_cd from civil_t where regcase_type=? and reg_no=? and reg_year=?";
        Advocate list = (Advocate) getJdbcTemplate().queryForObject(sql, new Object[]{Integer.valueOf(regCaseType),Integer.valueOf(regNo),Integer.valueOf(regYear)},new RowMapper<Object>() {
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {
                return resultSet.next() ? new Advocate(resultSet.getInt("pet_adv_cd"), resultSet.getString("pet_adv"))
                        : null;
            }
        });
        System.out.println(list);
        return list;
    }

在我的场景中,完全有可能不会对我的查询产生影响,所以我的问题是如何绕过以下错误消息。

HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 错误的 SQL 语法 [select pet_adv,pet_adv_cd from Civil_t where regcase_type=?]; 嵌套异常是 org.postgresql.util.PSQLException:错误:关系“civil_t”不存在

标签: javasqlspringpostgresqljdbc

解决方案


底层 postgresql JDBC 驱动程序引发了异常,因为在您要连接的数据库中找不到表Civil_t 。


推荐阅读