无法使用 postgres DB 确定数据库类型 NONE 的嵌入式数据库驱动程序类
Posted
技术标签:
【中文标题】无法使用 postgres DB 确定数据库类型 NONE 的嵌入式数据库驱动程序类【英文标题】:Cannot determine embedded database driver class for database type NONE using a postgres DB 【发布时间】:2018-02-12 09:44:24 【问题描述】:在 Eclipse 中运行 Spring Boot 应用程序时出现错误“无法确定数据库类型 NONE 的嵌入式数据库驱动程序类”。 我在网上搜索过,但找不到任何有用的东西。请看下面的代码:-
Application.properties
server.port=9093
spring.datasource.url=jdbc:postgresql://localhost:5432/DB
spring.datasource.username=postgres
spring.datasource.password=Sunny@310591
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
logging.level.org.springframework.web=INFO
logging.level.com.ge.punemmf.qualityputaway=DEBUG
logging.level.org.hibernate=ERROR
logging.file=logs/spring-boot-logging.log
spring.database.driverClassName=org.postgresql.Driver
endpoints.sensitive=false
Application.java
@SpringBootApplication
@EntityScan(basePackageClasses = CenterOfExcellence.class, WorkOrder.class )
public class WarehouseVisibilityApplication
public static void main(String[] args)
SpringApplication.run(WarehouseVisibilityApplication.class, args);
CenterOfExcellence.java
@Entity
@Table(name = "CENTEROFEXCELLENCE")
public class CenterOfExcellence
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
@OneToMany
@JoinTable(name = "CENTEROFEXCELLENCE_WORKORDER",
joinColumns = @JoinColumn(name = "center_of_excellence_id"), inverseJoinColumns = @JoinColumn(name = "workorder_id"))
private Set<WorkOrder> workorders;
WorkOrder.java
@Entity
@Table(name = "WORKORDER")
public class WorkOrder
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String workOrder;
POM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.warehousevisibility</groupId>
<artifactId>WarehouseVisibility</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>WarehouseVisibility</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
错误:-
说明:
无法确定数据库类型 NONE 的嵌入式数据库驱动程序类
行动:
如果您想要一个嵌入式数据库,请在类路径中放置一个受支持的数据库。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有配置文件处于活动状态)。
【问题讨论】:
@g00glen00b :是的,我已添加,请立即检查 pom.xml。 “你的数据库在运行吗”听起来像是一个恶作剧的开始...... 是的数据库正在运行 我用你的配置尝试了一个新项目,我可以运行应用程序。确保您的 application.properties 位于正确的位置。 Postgres 驱动程序的 jar 可能已损坏。尝试从 Maven 的缓存中清除它并再次运行您的应用程序。 【参考方案1】:当 spring 看不到 application.properties 时出现此消息(并且没有嵌入式数据库集) 验证:确保使用的端口是 9093 而不是默认的 8080。
【讨论】:
application.properties 在我的资源文件夹中。请检查一下。 你能不能试试 'spring.datasource.driverClassName' 而不是 'spring.database.driverClassName'。 那么,看一下我github中的一个例子:github.com/montassarelbehi/gpr-back以上是关于无法使用 postgres DB 确定数据库类型 NONE 的嵌入式数据库驱动程序类的主要内容,如果未能解决你的问题,请参考以下文章
Docker Compose 无法从数据库 (jdbc:postgresql://db:5432/postgres) 为用户“postgres”获取连接:连接尝试失败
无法使用 JDBC kafka-sink-connector 将 kafka 主题数据写入 postgres DB
GCP SQL Postgres 权限问题:无法使用生成的 symfony db 使用 postgres 用户运行查询
java 8 到 java 11 迁移后使用 postgres db 和 spring boot 保存 JpaSystemException 的 jsonb 类型数据