与Heroku的Java JDBC连接
我正在尝试在Heroku上创建一个Java Web应用程序。将应用程序连接到Heroku数据库时,我遇到了一个问题: org.postgresql.util.PSQLException:错误:关系“sc_用户”不存在 连接部分为:与Heroku的Java JDBC连接,java,postgresql,heroku,jdbc,Java,Postgresql,Heroku,Jdbc,我正在尝试在Heroku上创建一个Java Web应用程序。将应用程序连接到Heroku数据库时,我遇到了一个问题: org.postgresql.util.PSQLException:错误:关系“sc_用户”不存在 连接部分为: URI dbUri = new URI(System.getenv("DATABASE_URL")); String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + dbUri.getPath(); BasicDat
URI dbUri = new URI(System.getenv("DATABASE_URL"));
String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + dbUri.getPath();
BasicDataSource connectionPool = new BasicDataSource();
if (dbUri.getUserInfo() != null) {
connectionPool.setUsername(dbUri.getUserInfo().split(":")[0]);
connectionPool.setPassword(dbUri.getUserInfo().split(":")[1]);
}
connectionPool.setDriverClassName("org.postgresql.Driver");
connectionPool.setUrl(dbUrl);
connectionPool.setInitialSize(3);
Connection conn = connectionPool.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM SC_User");
我在Heroku仪表板上看到,池中使用了3个连接,但最后一行抛出异常,表示无关系SCU用户
我使用附加工具Adminium创建了表,命令中是否缺少一些内容?谢谢你的帮助 尝试用引号分隔表名
ResultSet rs = stmt.executeQuery("SELECT * FROM \"SC_User\"");
尝试用引号分隔表名
ResultSet rs = stmt.executeQuery("SELECT * FROM \"SC_User\"");
当您在postgres中创建带有大写字母的列时,DBMS在
“SC\u User”
si之间使用它,如果您的列是大写字母,则必须使用:
stmt.executeQuery("SELECT * FROM \"SC_User\"");
//--------------------------------^--------^
否则,您必须使用正确的名称和小写字母
stmt.executeQuery("SELECT * FROM sc_user");
//---------------------------------^^
请在此处阅读更多信息:
当您在postgres中创建带有大写字母的列时,DBMS在
“SC\u User”
si之间使用它,如果您的列是大写字母,则必须使用:
stmt.executeQuery("SELECT * FROM \"SC_User\"");
//--------------------------------^--------^
否则,您必须使用正确的名称和小写字母
stmt.executeQuery("SELECT * FROM sc_user");
//---------------------------------^^
请在此处阅读更多信息: