[英]Not able to create MySQL table and load initial data in it with Spring Boot after specifying schema.sql and data.sql
尽管同时指定schema.sql
和data.sql
中src/main/resources
我的Spring Boot
的应用程序无法在其中创建表的架构并加载数据,当我运行mvn clean install
对我来说,它看起来像是 application.properties 中的一些属性配置问题,但不确定是哪一个。
请指导。
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
src/main/resources/application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/agrisell-db
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.generate-ddl=true
src/main/resources/schema.sql
CREATE TABLE state
(
state_cd varchar(2) NOT NULL,
state_name varchar(100) NOT NULL,
create_modified_by varchar(50) NOT NULL DEFAULT 'admin',
create_modified_dt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
active char(1) NOT NULL DEFAULT 'Y',
PRIMARY KEY (state_cd),
UNIQUE KEY state_name (state_name)
);
src/main/resources/data.sql
DELETE FROM STATE;
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('AL','Alabama ');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('AK','Alaska');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('AZ','Arizona');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('AR','Arkansas');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('CA','California');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('CO','Colorado');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('CT','Connecticut');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('DE','Delaware');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('FL','Florida');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('GA','Georgia');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('HI','Hawaii');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('ID','Idaho');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('IL','Illinois');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('IN','Indiana');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('IA','Iowa');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('KS','Kansas');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('KY','Kentucky');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('LA','Louisiana');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('ME','Maine');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MD','Maryland');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MA','Massachusetts');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MI','Michigan');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MN','Minnesota');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MS','Mississippi');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MO','Missouri');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('MT','Montana');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NE','Nebraska');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NV','Nevada');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NH','New Hampshire');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NJ','New Jersey');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NM','New Mexico');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NY','New York');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('NC','North Carolina');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('ND','North Dakota');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('OH','Ohio');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('OK','Oklahoma');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('OR','Oregon');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('PA','Pennsylvania');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('RI','Rhode Island');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('SC','South Carolina');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('SD','South Dakota');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('TN','Tennessee');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('TX','Texas');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('UT','Utah');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('VT','Vermont');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('VA','Virginia');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('WA','Washington');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('WV','West Virginia');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('WI','Wisconsin');
INSERT INTO STATE (STATE_CD,STATE_NAME) VALUES ('WY','Wyoming');
COMMIT;
添加
spring.datasource.initialization-mode=always
在application.propertie
解决了这个问题。
下面列出了完整的 application.properties 文件。
# ==============================================================
# = Data Source
# ==============================================================
spring.datasource.url=jdbc:mysql://localhost:3306/agrisell-db
spring.datasource.username=root
spring.datasource.password=123456
# ==============================================================
# = Hibernate ddl auto (create, create-drop, update)
# ==============================================================
spring.jpa.hibernate.ddl-auto=none
# ==============================================================
# = The SQL dialect makes Hibernate generate better SQL for the chosen database
# ==============================================================
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
# ==============================================================
# = Initialize the database using data.sql script
# ==============================================================
spring.datasource.initialization-mode=always
# ==============================================================
# = Show or not log for each sql query
# ==============================================================
spring.jpa.show-sql=true
# ==============================================================
# = Keep the connection alive if idle for a long time (needed in production)
# ==============================================================
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.