繁体   English   中英

Spring Boot 非嵌入式 Derby 数据库?

[英]Spring Boot non-embedded Derby database?

如何配置 Spring Boot 以连接到基于网络的 Derby 数据库? 我不希望使用嵌入式 Derby DB,但它一直在尝试加载 EmbeddedDriver 类。

java.sql.SQLException: Unable to load class: org.apache.derby.jdbc.EmbeddedDriver from ClassLoader:sun.misc.Launcher$AppClassLoader@4d6c3502;ClassLoader:sun.misc.Launcher$AppClassLoader@4d6c3502
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:280)

我的 application.properties 中有以下内容:

spring.datasource.url=jdbc:derby://localhost:1527/MyTestDb
spring.datasource.username=Eric
spring.datasource.password=eric
spring.datasource.initialize=false

我的 pom 具有以下内容:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derbyclient</artifactId>
        <version>10.11.1.1</version>
    </dependency>

我的 Application.java 类是样板文件:

@EnableAutoConfiguration
@Configuration
@ComponentScan
@EnableCaching
public class Application {

   public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Application.class);
        app.setShowBanner(false);
       app.run(args);
    }
}

我需要做一些额外的特殊配置吗?

正如@XtremeBiker 所暗示的那样,我在 application.properties 文件中缺少驱动程序类名称以强制 Spring 使用客户端驱动程序而不是嵌入式驱动程序(默认情况下)

spring.datasource.url=jdbc:derby://localhost:1527/MyTestDb
spring.datasource.username=Eric
spring.datasource.password=eric
spring.datasource.initialize=false
spring.datasource.driver-class-name=org.apache.derby.jdbc.ClientDriver

以下配置对我有用

应用程序属性

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DerbyTenSevenDialect
spring.jpa.database-platform=org.hibernate.dialect.DerbyTenSevenDialect
    
spring.datasource.url=jdbc:derby://localhost:1527/MyDbTest
spring.datasource.driver-class-name=org.apache.derby.jdbc.ClientDriver
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM