当前位置: 首页 > 面试题库 >

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

桂阳文
2023-03-14
问题内容

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

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


问题答案:

如果您尝试使用内存数据库和Spring,则jdbcSpring
3
的新名称空间使使用嵌入式数据库非常容易。

最好的部分是它充当DataSource,因此可以很容易地将其放入以替换现有的dataSourcebean。

<jdbc:embedded-database id="dataSource" type="HSQL">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

如果您对使用Java
Config进行操作更感兴趣,请查看EmbeddedDatabaseBuilder(Spring
3.0中的新增功能)。

@Configuration
public class DatabaseTestConfig {
    @Bean
    public DataSource dataSource() {
        return new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.HSQL)
            .addScript("classpath:schema.sql")
            .addScript("classpath:test-data.sql")
            .build();
    }
}


 类似资料:
  • 引入地图 一般项目中,对于 vue-amap 的初始化只需要调用 initAMapApiLoader 方法即可。 NPM 安装: import VueAMap from 'vue-amap'; Vue.use(VueAMap); VueAMap.initAMapApiLoader({ key: 'YOUR_KEY', plugin: ['AMap.Scale', 'AMap.OverVi

  • 大家好,我是Kotlin语言的新手,在运行Hello World代码的过程中遇到了一些错误。 无法为初始化脚本'C:\User\HP\AppData\Local\Temp\wrapper_init.gradle'打开初始化泛型类缓存(C:\User\HP. gradle\cache\6.8\script\5mjee5vr2mabvexqryui51pg)。 缺陷源单元“BuildScript”中的

  • 5.a. 运行级别 启动您的系统 在系统启动时, 您会看到许多的文字漂浮而过. 如果您足够留心, 会发现每次重启系统时这些文字的内容其实都是一样的. 这一系列动作被称之为启动流程 (boot sequence) 并且已 (或多或少) 固定地 (statically) 定义下来了. 首先, 您的启动器会把启动器配置文件中定义的内核映象加载到内存中, 此后它告诉 CPU 去运行内核. 当内核已加载并运

  • 我正在尝试用一个视图和一个规则来初始化我的数据库,遵循75.3使用Spring JDBC初始化数据库。 75.3使用Spring JDBC初始化数据库 Spring JDBC有一个数据源初始化器特性。Spring Boot默认情况下启用它,并从标准位置schema.SQL和data.SQL(在类路径的根目录中)加载SQL。此外,Spring Boot将加载模式-${platform}.sql和数据

  • 问题内容: 对于自动化,我想使用管道作业初始化Jenkins 2.0实例。我想创建一个Groovy脚本,在启动时将其复制到该文件夹中。该脚本应创建一个Jenkins 2.0 Pipeline作业,以处理来自SCM的Jenkinsfile。 我找不到与2.0管道类相关的Javadoc或如何执行此操作的示例。 以前,使用Job DSL创建管道,我使用Groovy脚本通过构建器创建。该工作将成为Job

  • 为了实现自动化,我希望用管道作业初始化Jenkins2.0实例。我想创建一个Groovy脚本,该脚本在启动时复制到文件夹。该脚本应该创建一个Jenkins2.0管道作业,用于处理来自SCM的Jenkinsfile。