在Spring Boot应用程序中配置嵌入式Derby

问题描述 投票:1回答:2

你能帮我在Spring Boot应用程序中建立与嵌入式Derby数据库的连接吗?

我在网上搜索但只能找到服务器类型Derby的解决方案,而不是嵌入式Derby。

spring.jpa.database = ?
spring.jpa.hibernate.ddl-auto = create-drop
spring-boot derby
2个回答
4
投票

Derby作为内存数据库

如果要使用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作为持久数据库

如果要将Derby用作持久性数据库。添加这些应用属性

spring.datasource.url=jdbc:derby:mydb;create=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DerbyTenSevenDialect
spring.jpa.hibernate.ddl-auto=update

-2
投票

如果使用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>

然后添加常用的控制器,服务和存储库类。

© www.soinside.com 2019 - 2024. All rights reserved.