2013-06-26 20 views
13

Tôi muốn chỉ định URL cho thẻ jdbc:embedded-database. Điều này là không thể?Chỉ định url của jdbc: cơ sở dữ liệu nhúng

Ví dụ, nếu tôi có những điều sau đây trong bối cảnh của tôi:

<jdbc:embedded-database type="HSQL" id="dataSource"> 
    <jdbc:script execution="INIT" location="classpath:com/example/init.sql" /> 
</jdbc:embedded-database> 

Nó sẽ tạo ra một trong cơ sở dữ liệu bộ nhớ nằm ở jdbc:hsqldb:mem:dataSource

Những gì tôi muốn làm là có thể có một bean khác nhau ID và tên cơ sở dữ liệu ...

Ví dụ:

<jdbc:embedded-database type="HSQL" id="dataSource" url="jdbc:hsqldb:mem:testdb"> 
    <jdbc:script execution="INIT" location="classpath:com/example/init.sql" /> 
</jdbc:embedded-database> 

Trả lời

15

Thay vì sử dụng jdbc: cơ sở dữ liệu nhúng, bạn có thể thực hiện với cấu hình nguồn dữ liệu thông thường và hỗ trợ mùa xuân để thực thi tập lệnh SQL

<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> 
    <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
    <property name="url" value="jdbc\:hsqldb\:mem\:YOUNAME" /> 
    <property name="username" value="sa" /> 
    <property name="password" value="" /> 
</bean> 


<jdbc:initialize-database data-source="dataSource"> 
    <jdbc:script location="classpath:schema_h2.sql" /> 
</jdbc:initialize-database> 
+0

Tôi không biết về 'jdbc: initialize-database'. Điều này sẽ hoạt động hoàn hảo, Cảm ơn! – FGreg