如何在Eclipse中的Java项目中创建H2数据库?

Bor*_*yev 3 java eclipse h2

我想在Eclipse中的简单java项目中创建一个嵌入式H2数据库.我如何以编程方式执行此操作并将db打包到我的代码中?我为此尝试了一个SO帖子并在我的代码中出错.

代码 -

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();
    }

}
Run Code Online (Sandbox Code Playgroud)

错误 -

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)
Run Code Online (Sandbox Code Playgroud)

我看到了这个链接 - https://groups.google.com/forum/#!msg/h2-database/SlSwte0DLSU/eWj0UaejdkEJ以及我的H2数据库文件在哪里?.我不清楚如何在我的Windows PC上获得测试数据库的确切路径.

我如何首先访问测试数据库,然后在我的java项目中创建另一个数据库?

谢谢.

Tho*_*ler 8

你使用了错误的角色.你需要使用~(代字号)并且你有用˜(我不知道它是什么,但它不是代字号).