使用 Java 配置的 Jdbc 初始化数据库

use*_*655 5 java database jdbc hsqldb

我正在尝试从文件创建一个 hsqldb db(我目前有一个嵌入式数据库)。

我想要的是复制这个设置:

<bean class="org.apache.commons.dbcp2.BasicDataSource" id="dataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:file:#{systemProperties['user.home']}/db/data" />
<property name="username" value="sa" />
<property name="password" value="" />
Run Code Online (Sandbox Code Playgroud)

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:scripts/create-table-if-not-exists" />
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)

第一部分很好,这是我的代码:

DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
    dataSource.setUrl("jdbc:hsqldb:file:<file>");
    dataSource.setUsername("");
    dataSource.setPassword("");
    return dataSource;
Run Code Online (Sandbox Code Playgroud)

我不知道如何在我的 Java 设置中匹配 jdbc:initialize 数据部分。

cof*_*ava 3

@Bean
public DataSource dataSource() {
    EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
    return builder.setType(EmbeddedDatabaseType.HSQL).addScript("classpath:scripts/create-table-if-not-exists").build();
}
Run Code Online (Sandbox Code Playgroud)

http://docs.spring.io/spring-framework/docs/3.0.0.RC3/reference/html/ch12s08.html