相关疑难解决方法(0)

如何使用Spring通过脚本初始化内存中的HSQLDB

我正在尝试对我的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)

任何帮助,将不胜感激.谢谢.

java spring hsqldb

35
推荐指数
2
解决办法
7万
查看次数

HSQL:如果不存在则创建索引

我正在使用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语句,据我所知.

因此,除了删除/创建索引之外的解决方案将是值得赞赏的.

谢谢

hsqldb

7
推荐指数
1
解决办法
2321
查看次数

标签 统计

hsqldb ×2

java ×1

spring ×1