我需要一些帮助。我正在将Java与Springboot结合使用,并且正在从事一个项目,该项目实质上将数据库中的信息(书名,作者,语言等)显示到网页上,并且浏览网站使我可以对数据库进行更改例如,编辑条目,创建新条目,显示条目或删除条目。
在我不得不关闭计算机之前,它工作得很好,然后当我返回并尝试再次运行该项目时,它给了我下面的错误以及许多其他文字。我重新启动服务器,在调试模式下运行它,似乎没有任何作用。好像我断开了以前存在的某种连接,或者我删除了本不应该删除的内容。我只是不知道这可能是什么。我希望有人能告诉我我做错了什么,以便我可以扭转它,使其重新运行。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
[2m2020-03-16 23:06:05.766[0;39m [31mERROR[0;39m [35m49106[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.boot.SpringApplication [0;39m [2m:[0;39m Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
请注意,我没有直接学习“休眠”,只有在看到此错误并尝试使用Googling寻求答案时才听说此词。我为有类似问题的人尝试了stackoverflow上提到的其他一些解决方案,但对我来说不起作用(即,添加了有关休眠的特定依赖项,但我现在还不记得它的详细信息。我的头)。
以下是我用于各种程序包的一些代码:
属性
spring.datasource.url=jdbc:mysql://localhost:3306/book-schema2
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.mvc.view.prefix=/WEB-INF/
在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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.blank.mvc2</groupId>
<artifactId>mvc2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mvc2</name>
<description>mvc2</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</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>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
在模型包中: 导入java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Table;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;
import org.springframework.format.annotation.DateTimeFormat;
@Entity
@Table(name="books2")
public class Book {
在存储库包中:
import java.util.List;
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface BookRepository extends CrudRepository<Book, Long> {
在“服务”包中:
import java.util.List;
import java.util.Optional;
import org.springframework.stereotype.Service;
@Service
public class BookService {
在控制器包中:
import java.util.List;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class BooksController {
请记住,我已经做过这个项目,并且正在再次进行练习,并且两个项目以前都起作用,但是现在这两个项目都没有起作用。直到我重新启动计算机(在此期间计算机本身没有更新)之前,它都工作正常。如果您需要更多信息,请告诉我。我现在只需要帮助弄清楚这一点,因为对我来说为什么一分钟内无法正常工作,然后仅打开/关闭计算机电源在下一分钟内就无法正常工作。
答案 0 :(得分:0)
好吧,所以什么也没用,在网上进行了更多研究之后,我找到了一个解决方案,但不知道如何实现它,甚至不起作用。果然,我找到了一个YouTube视频(https://www.youtube.com/watch?v=nO0IaGrlGPc),他在其中逐步解释了该视频以及如何解决该视频。
TLDR:我最初在属性中有spring.datasource.url=jdbc:mysql://localhost:3306/book-schema
,但遇到了一些错误,其中之一是EDT未被识别为时区。这似乎是导致其他错误的原因。
所以我现在拥有的属性是:
spring.datasource.url=jdbc:mysql://localhost:3306/book-schema?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
该程序现在可以像以前一样工作。 (我认为也许3月8日的夏令时可能起到了作用?我不知道,但是它运行良好,然后突然说它不能识别EDT。)
谢谢所有试图帮助我解决这个问题的人。