我正在尝试对我的DAO进行单元测试(使用Spring和Hibernate).我在本教程中使用的是HSQLDB .该教程指出可以使用SQL脚本初始化内存中的HSQLDB数据库,但是我无法在Spring中找到有关如何执行此操作的信息.这是相关的Spring上下文配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:mem:mydb" />
<property name="username" value="sa" />
<property name="password" value="" />
<property name="initialSize" value="5" />
<property name="maxActive" value="10" />
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="10" />
</bean>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢.
我正在使用Spring初始化HSQL数据库2.2.9
<jdbc:initialize-database enabled="true">
<jdbc:script execution="INIT" location="classpath:./create-tables.sql"/>
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)
在create-tables.sql我用
CREATE TABLE IF NOT EXISTS MyTable(...);
Run Code Online (Sandbox Code Playgroud)
该表还有一个索引.我正在寻找比总是删除和创建索引更好的方法.
我试过了:
CREATE INDEX IF NOT EXISTS myIndex ...;
Run Code Online (Sandbox Code Playgroud)
我可以创建一个indexExisting()检查系统表的函数,如果找到索引则返回count(*)> 0,但是如果我写的话
IF indexExisting() = 0 THEN ...
Run Code Online (Sandbox Code Playgroud)
.sql它说,直接进入文件
java.sql.SQLSyntaxErrorException: unexcepted token: IF
Run Code Online (Sandbox Code Playgroud)
此外,存储过程似乎没有帮助,因为它们可能不包含DROP语句,据我所知.
因此,除了删除/创建索引之外的解决方案将是值得赞赏的.
谢谢