[英]Getting error while connecting to database from spring tool suite
Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0;创建名为“org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration”的bean时出错:通过构造函数参数0表示的依赖关系不满足; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed;
嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“dataSource”的 bean 时出错; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception;
嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [com.zaxxer.hikari.HikariDataSource]:工厂方法 'dataSource' 抛出异常; nested exception is java.lang.IllegalStateException: Cannot load driver class: oracle.jdbc.driver.OracleDriver
嵌套异常是 java.lang.IllegalStateException: 无法加载驱动程序 class: oracle.Z84BEFFD3A0D49AdriverCE7663
pom.xml file https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 pom.xml 文件 https://maven.apache.org/xsd/maven-4.0.0.xsd">4.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
</parent>
<groupId>com.Projectdashboardtool</groupId>
<artifactId>Project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Project</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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-jersey</artifactId>
</dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency> -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Controller class Controller class
@RestController
@RequestMapping("/project")
public class ProjectController {
@Autowired
private ProjectRepository projectRepository;
@GetMapping
public List<Project> list(){
//List<Project> project=new ArrayList<>();
return projectRepository.findAll();
}
@PostMapping
@ResponseStatus(HttpStatus.OK)
public void create(@RequestBody Project project) {
projectRepository.save(project);
}
@GetMapping("/{id}")
public Project get(@PathVariable("id") long id) {
return projectRepository.getOne(id);
}
}
Model class Model class
package com.Projectdashboardtool.Project.Model;
import java.sql.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@Entity
@JsonIgnoreProperties({"hiberanateLazyInitializer", "handler"})
public class Project {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String dg_number;
private String project;
private String release_level;
private String release_area;
private String release_number;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd-MM-yyyy")
private Date planned_release_date;
private Date release_date;
public String getDg_number() {
return dg_number;
}
public void setDg_number(String dg_number) {
this.dg_number = dg_number;
}
public String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public String getRelease_level() {
return release_level;
}
public void setRelease_level(String release_level) {
this.release_level = release_level;
}
public String getRelease_area() {
return release_area;
}
public void setRelease_area(String release_area) {
this.release_area = release_area;
}
public String getRelease_number() {
return release_number;
}
public void setRelease_number(String release_number) {
this.release_number = release_number;
}
public Date getPlanned_release_date() {
return planned_release_date;
}
public void setPlanned_release_date(Date planned_release_date) {
this.planned_release_date = planned_release_date;
}
public Date getRelease_date() {
return release_date;
}
public void setRelease_date(Date release_date) {
this.release_date = release_date;
}
public String getRelease_type() {
return release_type;
}
public void setRelease_type(String release_type) {
this.release_type = release_type;
}
private String release_type;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public String toString() {
return "Project [id=" + id + ", dg_number=" + dg_number + ", project=" + project + ", release_level="
+ release_level + ", release_area=" + release_area + ", release_number=" + release_number
+ ", planned_release_date=" + planned_release_date + ", release_date=" + release_date
+ ", release_type=" + release_type + "]";
}
}
application.properties file
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.SQLServer2012Dialect
spring.datasource.url=jdbc:oracle:thin:@//hostname/servicename
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
Adding dependency:添加依赖:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.1.0</version>
</dependency>
And correct hibernate dialect - org.hibernate.dialect.OracleDialect
should work.并且正确的 hibernate 方言 -
org.hibernate.dialect.OracleDialect
应该可以工作。
I think you are using property file for DB oracle.我认为您正在使用 DB oracle 的属性文件。 From your exception i can able to see spring boot failed to load oracle driver.
从您的异常中,我可以看到 spring 引导无法加载 oracle 驱动程序。 So download ojdbc6.jar from Oracle website or if you install oracle11g in your local system you can find ojdbc in jdbc/lib folder.
因此,从 Oracle 网站下载 ojdbc6.jar 或者如果您在本地系统中安装 oracle11g,您可以在 jdb.lib 文件夹中找到 ojdbc。
add this to your project, On eclipse right click on project --> build path --> add this jar.将此添加到您的项目中,在 eclipse 上右键单击项目 --> 构建路径 --> 添加此 jar。
So suppose you are using spring boot add this dependency to your pom.xml因此,假设您使用 spring 引导将此依赖项添加到您的 pom.xml
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>//add letest version
</dependency>
Suppose if your dependency not detected by maven follow the below steps:-假设如果 maven 未检测到您的依赖项,请按照以下步骤操作:-
Run this command运行此命令
mvn install:install-file - Dfile=C:\Users\user\.m2\repository\com\oracle\ojdbc6\11.2.0\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar
Then You can Use this.然后你可以使用这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.