在开发过程中,尤其是进行单元测试时,内存数据库(Embedded Database)因其配置简单、启动速度快且易于测试而备受青睐。Spring 框架原生支持 HSQL、H2 和 Derby 三种内存数据库,通过 <jdbc:embedded-database> 标签即可快速集成,无需繁琐的驱动类与 URL 配置。
基础配置
首先需要在 applicationContext.xml 中引入 JDBC 命名空间,并添加嵌入式数据库配置。这里默认使用 HSQL 数据库,如果需要使用其他类型,只需修改 type 属性即可。
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:schema.sql"/>
<jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>
注意:
- 确保已正确声明
jdbc命名空间。 schema.sql用于创建表结构和约束条件。test-data.sql用于插入初始测试数据。
有了该内存数据库配置后,传统的 driverClassName、url、username 等连接池配置就不再需要了。
示例:Derby 数据库集成
下面我们通过一个 Derby 数据库的示例来具体看看。相比传统方式,我们不再需要手动配置 DriverManagerDataSource,而是直接利用 Spring 的嵌入式功能。
Spring 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx=
=
=>
org.hibernate.dialect.DerbyDialect
true
true
zwh.spring.security.po.User
zwh.spring.security.po.Role

