如何使用JDBC连接到内存数据库中的Play框架?
当配置文件中有如何使用JDBC连接到内存数据库中的Play框架?,jdbc,database-connection,playframework,h2,in-memory-database,Jdbc,Database Connection,Playframework,H2,In Memory Database,当配置文件中有db=mem时,我使用Play Framework附带的内存中数据库进行开发 如何使用JDBC连接到此数据库?而不是JPA,这是默认的方式 我已在控制器中尝试过此方法: public static void addToDB() { try { Connection conn = DriverManager.getConnection("jdbc:h2:mem:play"); Statement stmt = conn.createStatem
db=mem
时,我使用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();
}
}
但我收到一条错误消息,需要提供用户名和密码:
org.h2.jdbc.JdbcSQLException: Wrong user name or password [8004-149]
如果我在/@db
上访问web控制台,则使用用户名sa
,而不使用密码
现在我通过
/@db
界面登录,并创建了一个表users
然后,我用一个控制器方法连接到数据库,并使用这个jdbc字符串:jdbc:h2:mem:play:sa
,然后尝试插入到表users
,但我收到了以下错误消息:
org.h2.jdbc.JdbcSQLException: Table "USERS" not found; SQL statement:
如何使用JDBC连接到Play框架中的内存H2数据库?试试:
Connection conn = DriverManager.getConnection("jdbc:h2:mem:play", "sa", "");
因为正如您所写,“使用的是用户名sa,没有密码。”
DB.getConnection()
,应该可以完成这项工作。+1我把URL名称与用户名混淆了;谢谢你的澄清。每次我打电话都会有新的连接吗?或者是我不应该关闭的相同吗?这是HibernateSession提供的连接。所以我认为你最好不要关上它。