你能帮我在Spring Boot应用程序中建立与嵌入式Derby数据库的连接吗?
我在网上搜索但只能找到服务器类型Derby的解决方案,而不是嵌入式Derby。
spring.jpa.database = ?
spring.jpa.hibernate.ddl-auto = create-drop
如果要使用spring boot配置内存中的Derby数据库,那么您需要的最小的事情是提及运行时依赖性(以及spring-boot-starter-data-jpa
)
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
这个最低配置应该适用于Spring Boot中的任何嵌入式数据源。但是从当前的Spring Boot版本(2.0.4.RELEASE)开始,这只会导致Derby的错误
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing
DDL via JDBC Statement
Caused by: java.sql.SQLSyntaxErrorException: Schema 'SA' does not exist
发生这种情况是因为spring.jpa.hibernate.ddl-auto=create-drop
的默认配置请参阅此spring-boot issue以获取详细信息。
因此,您需要在application.properties
中覆盖该属性
spring.jpa.hibernate.ddl-auto=update
如果要将Derby用作持久性数据库。添加这些应用属性
spring.datasource.url=jdbc:derby:mydb;create=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DerbyTenSevenDialect
spring.jpa.hibernate.ddl-auto=update
如果使用Spring Boot,则不需要连接属性。只需将这些添加到您的POM:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
然后添加常用的控制器,服务和存储库类。