2012-06-06 31 views
2

雖然從我所看到的我無法獲得初始化我的數據庫,但我正在做這件事。我不斷收到一個org/springframework/dao/DataAccessResourceFailureException。Spring jdbc:初始化數據庫不工作

這裏是我的springapp-servlet.xml中:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"/> 
    <property name="url" value="${jdbc.url}"/> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
</bean> 



<jdbc:initialize-database data-source="dataSource" ignore-failures="DROPS"> 
<jdbc:script location="classpath:create_products.sql" /> 
<jdbc:script location="classpath:load_data.sql" /> 
</jdbc:initialize-database> 

的jdbc.properties文件是Java資源/ src和是這樣的:

jdbc.driverClassName=org.hsqldb.jdbcDriver 
jdbc.url=jdbc:hsqldb:hsql://localhost 
jdbc.username=sa 
jdbc.password= 

的create_products.sql也是在Java中資源/ src是這樣的: CREATE TABLE產品( id INTEGER NOT NULL PRIMARY KEY, description varchar(255), price decimal(15,2) );

的load_data.sql是在同一個位置,是這樣的:

INSERT INTO products (id, description, price) values(1, 'Lamp', 5.78); 
INSERT INTO products (id, description, price) values(2, 'Table', 75.29); 
INSERT INTO products (id, description, price) values(3, 'Chair', 22.81); 

有什麼建議? 謝謝。

+0

我會建議休眠此任務..但如果你不能,我想我能給的最好的忠告是:log4j的,並提出一些logging.With一個完整的堆棧跟蹤,可能是有有人會知道發生了什麼。 –

+0

除了初始化之外,你可以訪問數據庫嗎?使用你的jdbc.url,你需要在運行代碼之前單獨啓動HSQLDB服務器。 – fredt

+0

@Dave:其中是你的spring配置文件'springapp-servlet.xml'的位置? – Angelika

回答

0

Dave可能你也會在你的springapp-servlet.xml中得到這個錯誤cvc-complex-type.2.4.b: The content of element 'jdbc:initialize-database' is not complete. One of '{"http://www.springframework.org/schema/jdbc":script}' is expected.

org.springframework.jdbc.datasource.init包爲初始化現有數據源提供支持。只要檢查你的spring-jdbc版本。 編號:[http://static.springsource.org/spring/docs/3.0.0.RC3/reference/html/ch12s09.html][1]

只要打開彈簧JDBC JAR和下看看:org/springframework/jdbc/datasource,如果你可以通過名字就能看出任何文件夾init。如果init文件夾犯規存在,那麼Spring Framework的版本使用的是不支持此功能。

enter image description here