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

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

我想要的是复制此设置:

<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="" />
<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:scripts/create-table-if-not-exists" />
</jdbc:initialize-database>

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

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

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

最佳答案

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

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

点赞