我尝试使用h2数据库和spring Boot 从sql文件插入数据。当我将sql文件添加到src/main/ressources
中时,我成功地创建了表并将数据插入其中。但当我创建一个引用该表的名为Employee的模型类时,我可以创建表,但没有插入行。
SQL档案:
CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(250) NOT NULL, last_name VARCHAR(250) NOT NULL,
mail VARCHAR(250) NOT NULL, password VARCHAR(250) NOT NULL );
INSERT INTO employees (first_name, last_name, mail, password) VALUES
('Laurent', 'GINA', 'laurentgina@mail.com', 'laurent');
型号:
import javax.persistence.Column; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import
javax.persistence.GenerationType; import javax.persistence.Id; import
javax.persistence.Table;
import lombok.Data;
@Data @Entity @Table(name = "employees")
public class Employee {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="first_name")
private String first_name;
@Column(name="last_name")
private String last_name;
private String mail;
private String password;
}
application.properties
# Global configuration
spring.application.name=api
# Tomcat configuration
server.port=9000
# Log level configuration
logging.level.root=ERROR
logging.level.com.openclassrooms=INFO
logging.level.org.springframework.boot.autoconfigure.h2=INFO
logging.level.org.springframework.boot.web.embedded.tomcat=INFO
# H2 Configuration
spring.h2.console.enabled=true
2条答案
按热度按时间hfwmuf9z1#
有许多方法可以使用 Spring Boot 初始化数据库:
1.使用JPA初始化数据库
1.使用Hibernate初始化数据库
1.使用基本SQL脚本初始化数据库
供您参考:您应该将***模式***与***数据***分开,因此您应该有两个基本脚本:
*模式.sql:在这个文件中你可以把你的指令创建表。
*数据库.sql:在这个文件中你可以把你的指令插入数据
供您参考:
**请注意,这取决于您选择的版本!**x1c 0d1x
mqkwyuun2#
有几个因素可能会导致此问题。
首先,确保您的SQL文件位于src/main/resources目录中,否则Sping Boot 将不会拾取该文件。
接下来,检查文件的权限。如果应用程序无法读取该文件,则无法加载数据。
最后,确保SQL文件的格式正确。如果文件中有任何语法错误,那么Sping Boot 将无法加载数据。