6

我使用Play Framework附帶的內存數據庫,當我在配置文件中使用db=mem進行開發時。如何使用JDBC連接到Play Framework內存數據庫?

如何使用JDBC連接到此數據庫?而不是默認方式的JPA。

我試圖在我的控制器這個方法:

public static void addToDB() { 
    try { 
     Connection conn = DriverManager.getConnection("jdbc:h2:mem:play"); 
     Statement stmt = conn.createStatement(); 
     stmt.execute(sql); 
     stmt.close(); 
     conn.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

,但我得到我需要提供用戶名和密碼的錯誤消息:如果我訪問web的

org.h2.jdbc.JdbcSQLException: Wrong user name or password [8004-149] 

控制檯/@db使用用戶名sa並且沒有密碼。


現在我通過/@db界面登錄並創建表users

然後我連接到數據庫中的一個控制器方法和使用該JDBC的字符串:jdbc:h2:mem:play:sa,然後試圖插入到表users但我收到此錯誤信息:

org.h2.jdbc.JdbcSQLException: Table "USERS" not found; SQL statement: 

我應該如何連接到Play Framework中使用JDBC的內存中H2數據庫?

回答

8

DB.getConnection(),應該做這個工作。

+0

每次我打電話時都會返回一個新連接?還是我不應該關閉? – Jonas

+2

它是從HibernateSession提供的連接。所以我會認爲你最好不要關閉它。 – niels

6

嘗試:

Connection conn = DriverManager.getConnection("jdbc:h2:mem:play", "sa", ""); 

因爲你寫的 「用戶名SA使用,沒有密碼。」

+0

+1我將URL名稱與用戶名混淆在一起;謝謝澄清。 – trashgod

相關問題