我想在我的Eclipse中的简单java项目中创建一个嵌入式H2数据库。如何以编程方式完成此操作,并将数据库打包到代码中?我为此尝试了一个SO post,但在我的代码中得到了一个错误。
代码-
public static void main(String[]args){
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:˜/test");
ds.setUser("sa");
ds.setPassword("sa");
try {
Connection conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}错误-
org.h2.jdbc.JdbcSQLException: A file path that is implicitly relative to the
current working directory is not allowed in the database URL "jdbc:h2:˜/test".
Use an absolute path, ~/name, ./name, or the baseDir setting instead. [90011-181]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.engine.ConnectionInfo.getName(ConnectionInfo.java:398)
at org.h2.engine.Engine.openSession(Engine.java:45)
at org.h2.engine.Engine.openSession(Engine.java:167)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:145)
at org.h2.engine.Engine.createSession(Engine.java:128)
at org.h2.engine.Engine.createSession(Engine.java:26)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:347)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:108)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:92)
at org.h2.Driver.connect(Driver.java:72)
at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:190)
at org.h2.jdbcx.JdbcDataSource.getConnection(JdbcDataSource.java:161)
at MyCode.main(MyCode.java:8)我看到了这个链接- https://groups.google.com/forum/#!msg/h2-database/SlSwte0DLSU/eWj0UaejdkEJ和Where are my H2 database files?。我不清楚如何才能在我的windows pc上获得测试数据库的确切路径。
如何首先访问测试数据库,然后在java项目中创建另一个数据库?
谢谢。
发布于 2014-08-31 15:40:51
您使用了错误的字符。您需要使用~ (代字号),并且必须使用˜ (我不知道它是什么,但它不是代字号)。
发布于 2014-08-31 09:16:15
H2文件的位置非常nicely documented。要查看内容,请执行h2.jar。它不仅是驱动程序,而且是一个可执行文件,它将启动一个基于web的应用程序进行DB管理。
https://stackoverflow.com/questions/25587693
复制相似问题