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

时间:2017-06-07 11:54:22

标签: spring-boot derby

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

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

    Sub TestNamedRange()
    Dim i As Long
    Dim intCount As Long
    Dim NameArray() As String
    'count number of named ranges
    intCount = ThisWorkbook.Names.Count
    ReDim NameArray(intCount)  'for dynamic number of named ranges
    'assign all names to each array element
    For i = 1 To intCount
      NameArray(i) = ThisWorkbook.Names(i).Name 'remove .Name if you want address range only
    Next
   'check array elements
   For Each ele In NameArray
     Debug.Print ele
   Next
  'manipulate your array here
  End Sub

2 个答案:

答案 0 :(得分:3)

Derby作为内存数据库

如果您想通过弹簧启动配置内存中的 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的默认配置,有关详细信息,请参见此春季启动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

答案 1 :(得分:-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>

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