我想在 Maven 和 Spring 上下文中使用相同的嵌入式数据库。通过 Maven Liquibase 插件,我正在创建数据库模式并用数据填充它。通过 Spring,我将使用数据库。我还需要一种通过 Intellij IDEA IDE 连接到数据库的方法。
在 Spring 3 中,可以使用以下方法配置嵌入式数据库:
<jdbc:embedded-database id="datasource" type="HSQL"/>
为了通过 Maven 插件创建模式并填充数据库,我需要将其配置为:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.5</version>
<configuration>
<propertyFile>src/main/resources/db/config/${envProfile}-config.properties</propertyFile>
<changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>
</configuration>
</plugin>
在这种情况下,我的属性文件具有以下属性:
driver: org.hsqldb.jdbcDriver
#HSQLDB Embedded in file
url: jdbc:hsqldb:file:src/main/resources/db/hsqldb/dataFile
第一个问题。如何同时使用 Spring 和 Maven 上下文使用相同的数据库?作为一种解决方案,我可以像往常一样在 Spring 中配置数据库 dataSource bean - 将属性文件中的配置选项传递给它。但我想完全使用 Spring 3 功能 - . 如果我可以在 Spring 上下文中连接它,那么我可以通过 Maven 插件连接它。我该怎么做?为什么到处都建议像往常一样配置dataSourse bean而不解决问题?为什么 Spring 中添加了新功能,但我只能在 Spring 上下文中使用它,而无法从基于 jdbc 的数据库可视化工具连接到数据库?
PS:似乎嵌入式HSQL数据库是全内存(我认为它可能是全文件)和进程内。因此,无法在一个进程中创建模式并将其填充。完成它。然后尝试从另一个进程中连接。请纠正我,如果我错了。