簡體   English   中英

與Heroku的Java JDBC連接

[英]Java JDBC Connection with Heroku

我正在嘗試在Heroku上創建Java Web App。 將應用程序連接到Heroku數據庫時,遇到問題: org.postgresql.util.PSQLException:錯誤:關系“ sc_user”不存在

連接部分是:

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個連接,但是最后一行拋出異常,說明沒有關系sc_user。

我使用附加工具Adminium創建了表,命令中是否缺少某些內容? 謝謝你的幫助!

嘗試用引號分隔表名

ResultSet rs = stmt.executeQuery("SELECT * FROM \"SC_User\"");

當您在postgres中使用大寫字母創建一列時,DBMS在"SC_User" si之間使用它,以防您的列在大寫字母中,您必須使用:

stmt.executeQuery("SELECT * FROM \"SC_User\""); 
//--------------------------------^--------^

否則您必須使用小寫正確的名稱

stmt.executeQuery("SELECT * FROM sc_user");
//---------------------------------^^

在這里閱讀有關此內容的更多信息: 無法查詢具有大寫字母列名稱的Postgres數據庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM