6

開発用のコンフィグレーションファイルにdb=memがある場合、Play Frameworkに付属のメモリ内のデータベースを使用します。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: 

をJDBCを使用したPlay Frameworkのメモリ内H2データベース?

答えて

8

DB.getConnection()は、仕事をする必要があります。

+0

私はそれを呼び出すたびに新しい接続が返されますか?それとも、私が閉じてはならないことは同じですか? – Jonas

+2

HibernateSessionから与えられた接続です。だから私はあなたがそれを閉じないほうが良いと思います。 – niels

6

試してみてください "ユーザ名SAが使用され、パスワードなし"

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

あなたが書いたように、ので、

+0

+1 URL名をユーザー名と混同していました。明確化のためにありがとう。 – trashgod

関連する問題