我創建了一個Spring Boot應用程序,我想使用HSQLDB將數據存儲在與可執行JAR文件相同的目錄中。我在資源目錄中創建了「application.properties」文件和「schema.sql」。在應用程序配置如下;Spring Boot在配置時不使用HSQLDB的基於文件的數據庫
spring.datasource.url=jdbc:hsqldb:file:data/mydb
spring.datasource.username=SA
spring.datasource.password=lEtmEIn
spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver
當Spring Boot啓動時,它發現了schema.sql並創建了數據庫。問題是Spring Boot稱爲數據庫「testdb」,它顯然是「僅限內存」模式,並不保存到定義的位置;
2015-09-04 08:48:00.985 INFO 30180 --- [ main] o.s.j.d.e.EmbeddedDatabaseFactory : Creating embedded database 'testdb'
2015-09-04 08:48:01.415 INFO 30180 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from URL [file:/D:/GitHub/REDACTED/target/classes/schema.sql]
2015-09-04 08:48:01.423 INFO 30180 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from URL [file:/D:/GitHub/REDACTED/target/classes/schema.sql] in 8 ms.
我怎麼知道春天引導使用基於HSQLDB的內存退出並兌現我的配置?
你確定你的'application.properties'文件實際使用?如果您使用執行器,則可以檢查/ configprops或/ env端點。 –
我檢查了/ configprops並查看以下內容; { 「dataSourceClassName」:NULL, 「屬性」:{}}, 「分離器」: 「;」, 「URL」: 「JDBC:HSQLDB:文件:數據/ MYDB」, 「平臺」: 「所有」, 「continueOnError」 :假的, 「jndiName」:空, 「sqlScriptEncoding」:空, 「密碼」:空 「driverClassName」: 「org.hsqldb.jdbc.JDBCDriver」, 「初始化」:真正的 「用戶名」: 「SA」}} --- Soooo!我假設配置被讀取,只是沒有榮幸 –
我的猜測是,春天沒有得到'application.properties'。我寫的和你一樣,而且工作正常。 – russellhoff