JdbcTemplate org.postgresql.util.PSQLException:错误:关系“ my_table”不存在

问题描述 投票:0回答:1

开始之前,我已经搜索了以下主题作为答案:

我正在尝试使用以下代码直接使用JdbcTemplate直接查询数据库(无Hibernate):

private String read(final int id) {
    final String query = String.format("select some_column from my_table where id='%d' limit 1;", id);

    return jdbcTemplate.query(query, rs -> {
        if (rs.next()) {
            return rs.getString(1);
        }

        return "";
    });
}

如果这有任何改变,我将从Guava的缓存中调用此代码,如下所示:

cache.get(id, () -> read(id));

我查询了数据库,发现可以与服务用户一起读取结果,并且当然该表存在。

SELECT table_schema, table_name
 FROM information_schema.tables 
 WHERE lower(table_name) = 'my_table'

结果是:

table_schema|table_name      |
------------|----------------|
public      |    my_table    |

我想念什么?

java postgresql spring-jdbc jdbctemplate
1个回答
0
投票

这是不正确的,您不能将表名称放在连接字符串中。我不了解postgre,“ public”的含义是您的架构名称,或者仅表示它是全局名称。但是您的连接字符串不正确。您不能在其中包含表名称。您应该尝试:

jdbc:postgresql://localhost:5432/schema-name

schema-name可能为空,或者“ public”可能是您的架构名称。有点不确定。

© www.soinside.com 2019 - 2024. All rights reserved.