尊敬的用户我的问候,我是新手与Spring Boot ,我想只是创建简单的表在H2数据库,这是模型类
@Entity
public class Human
{
@Id
private long id;
private String firstname;
private String lastname;
private String email;
public long getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
字符串
这是pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo-1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo-1</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-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>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
型
application.properties:
spring.h2.console.enabled= true
spring.h2.console.path=/h2
spring.datasource.url=jdbc:h2:file:~/user
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
型
在此之前,应用程序运行良好,唯一的问题是表未显示在H2控制台中(我不知道它是否真的创建了,但当我使用H2控制台时,表立即创建)
所以拜托有什么问题吗?任何帮助都很感激
3条答案
按热度按时间dbf7pr2w1#
有几件事,你需要检查和验证,以确保这一工作。
schema.sql
的文件中。另外,请确保该文件放在目录src/main/resources/
文件夹下。但是当提供schema.sql
时,请确保禁用spring.jpa.hibernate.ddl-auto
,因为两者不会同时工作。在基于JPA的应用程序中,您可以选择让Hibernate创建模式或使用schema.sql,但不能同时执行这两项操作。如果使用schema.sql,请确保禁用spring.jpa.hibernate. ddl-auto。
data.sql
的文件中。另外,确保文件放在目录src/main/resources/
文件夹下。这将在ddl自动创建表后执行。Repository层类似于:
字符串
正如@sovannarith cheav所说,您需要提供
application.properties
或application.yml
中的属性,例如:型
spring.jpa.hibernate.ddl-auto
属性可以根据您的用例具有不同的值。此属性的值可以是:validate:验证模式,不对数据库进行任何更改。
update:更新schema。
create:创建模式,销毁以前的数据。
删除模式:在会话结束时删除模式。
如果这不起作用,可能是springboot没有识别H2,所以尝试设置以下内容:
型
正式文件
jrcvhitl2#
这里的解决方案只是为主类添加注解
字符串
所以这里Spring将扫描包com.example.model并与H2数据库连接,然后创建表
The table human of origins Human entity
ktecyv1j3#
检查包的详细信息,您可以在包外创建实体