Как подключиться к базе данных Play Framework в памяти с помощью JDBC? - PullRequest
6 голосов
/ 16 июля 2011

Я использую базу данных в памяти, которая поставляется с Play Framework, когда у меня есть db=mem в файле конфигурации, для разработки.

Как я могу подключиться к этой базе данных с помощью 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();
    }
}

Но я получаю сообщение об ошибке, в котором мне нужно указать имя пользователя и пароль:

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:

Как подключиться к базе данных H2 в памяти в Play Framework с использованием JDBC?

Ответы [ 2 ]

8 голосов
/ 18 июля 2011

DB.getConnection(), должен делать работу.

7 голосов
/ 16 июля 2011

Попробуйте:

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

потому что, как вы написали, «используется имя пользователя sa и пароль отсутствует»

...