【发布时间】:2023-12-09 23:55:01
【问题描述】:
我正在尝试使用 Spring Boot 和 MySQL 开发应用程序。正如文档所说,首先我使用 Intelij Idea 使用 Spring initializr 创建了项目,配置了application.properties
文件,并编写了schema-mysql.sql
文件和data-mysql.sql
文件。运行项目后,发现 MySQL 数据库中没有表或数据。我的配置有什么问题?请帮忙。
application.properties 文件,
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql = true
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.datasource.schema=schema-mysql.sql
spring.datasource.data=data-mysql.sql
pom.xml 文件中的依赖项,
<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-starter-security</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
schema-mysql.sql 文件,
CREATE TABLE IF NOT EXISTS `SOL16_USERS` (
`USERNAME` VARCHAR(200) NOT NULL,
'PASSWORD' VARCHAR(200) NOT NULL,
PRIMARY KEY (`USERNAME`)
);
CREATE TABLE IF NOT EXISTS 'SOL16_PRIVILEGES' (
'PRIVILEGE_ID' INT(2) NOT NULL,
'PRIVILEGE' VARCHAR(15) NOT NULL,
PRIMARY KEY ('PRIVILEGE_ID')
);
CREATE TABLE IF NOT EXISTS 'SOL16_USER_PRIVILEGES' (
'USERNAME' VARCHAR(200) NOT NULL,
'PRIVILEGE_ID' VARCHAR(2) NOT NULL,
PRIMARY KEY ('USERNAME')
);
而文件/目录结构是,
src
|----main
| |----java
| |----resources
| | |----static
| | |----templates
| | |----application.properties
| | |----data-mysql.sql
| | |----schema-mysql.sql
【问题讨论】:
-
你配置了application.yml文件吗?
-
您是否在应用程序运行时进行检查?
create-drop
会在会话关闭后删除表格 - 尝试使用create
或更好的update
-
你遇到了什么错误?
-
您的
schema-mysql.sql
和data-mysql.sql
放在哪里(请将您的文件夹结构添加到您的问题中)?此外,您正在使用 Hibernatecreate-drop
,这会干扰 Spring Boot 的模式创建。假设您只想使用schema-mysql.sql
而不是依赖 Hibernate 将其更改为validate
而不是您现在拥有的。 -
validate
不会出错???如果没有表,那应该会炸毁您的应用程序...为 .sql 文件的名称添加前缀classpath:
以使它们从类路径中显式加载。您创建的表是映射到休眠实体的表?
标签: java mysql spring intellij-idea spring-boot