gpt4 book ai didi

java - 为什么 import.sql 在 Spring Boot 中会失败?

转载 作者:行者123 更新时间:2023-11-30 07:55:49 24 4
gpt4 key购买 nike

我关注了this tutorial在 Spring Boot 上。

这家伙速度相当快,但看起来一切都与我们的代码相同。当我要查看 H2 控制台时,我注意到我缺少 Speaker 表。

我在这里看到了很多问题,到处都是博客,似乎您所要做的就是将文件放在 main/resources 中,然后它就可以工作了。嗯,事实并非如此!

一些答案​​讨论了 persistence.xml 和/或 H2 的配置文件。好吧,我没有这些,那个教程和他的作品也没有。

我发现一些看似最简单的事情对 Spring 来说非常令人沮丧,我厌倦了四处寻找并找到行不通的相同答案。

有人可以解释一下为什么会失败吗?

我无法想象除了 pom.xml 之外我还需要什么,因为教程只是添加了 import.sql 并且像其他人声称的那样 - 它只是有效。如果需要的话我会添加更多。

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>org.test</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>demo</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<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-data-rest</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>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

导入.sql

INSERT INTO SPEAKER(ID, FIRST_NAME, LAST_NAME, TWITTER, BIO) VALUES (0, 'Foo', 'Baz', 'foobaz', 'Foo Baz hates Twitter');
INSERT INTO SPEAKER(ID, FIRST_NAME, LAST_NAME, TWITTER, BIO) VALUES (1, 'Bar', 'Baz', 'barbaz', 'Bar Baz hates Twitter too');
INSERT INTO SPEAKER(ID, FIRST_NAME, LAST_NAME, TWITTER, BIO) VALUES (2, 'Santa', 'Clause', 'saintnick', 'Santa is a Twitter champ');

最佳答案

通过更仔细的调查,我在一个次要但重要的细节中找到了答案。显然,当控制台启动时,它向表单条目添加了默认值,其中一个与教程的不同。

对于 JDBC URL,默认值为 jdbc:h2:~/test

enter image description here

我必须将其更改为jdbc:h2:mem:testdb

enter image description here

我现在可以看到 Speaker 表和数据。

一旦我进行了更改,它就保持默认状态。我想作者已经这样做了,但我错过了其中的区别。

感谢您的帮助@M。德因姆!

关于java - 为什么 import.sql 在 Spring Boot 中会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com