当前位置: 首页 > 面试题库 >

Spring Boot-MySQL设置不起作用

庞安晏
2023-03-14
问题内容

我正在尝试使用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

问题答案:

正如Spring引导文档中提到的那样,解决我的问题的方法是添加spring.datasource.platformapplication.properties。这就是我缺少使用schema-{platform}.sql和初始化架构的原因data-{platform}.sql

{platform} =的值 spring.datasource.platform

所以我最后的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 = validate
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.platform=mysql
spring.datasource.schema=schema-mysql.sql
spring.datasource.data=data-mysql.sql
spring.datasource.initialize=true
spring.datasource.continue-on-error=true


 类似资料:
  • 问题内容: 我无法在注解中使用方法。也给。我想念什么?虽然效果很好。 我正在从数据库向用户分配权限。 问题答案: 你必须命名前缀你的权威来使用,看到Spring Security的参考 : HttpServletRequest.isUserInRole(String)将确定是否包含具有传递给的角色。通常,用户不应将“ ROLE_”前缀传递给此方法,因为它是自动添加的。例如,如果要确定当前用户是否具

  • 我有一个简单的SpringBoot应用程序,我想使用AutoConfiguration来配置Tomcat jdbc池数据源。 我正在使用这些Spring依赖项: 以下是我的 application.yml 文件中的数据源属性: 我确定正在加载属性,因为应用程序正在获取其他值。 我在配置文件中将 bean 定义为: 我将数据源注入到我的DAO中,如下所示: 如果我在getDataSource()方法

  • 我有一个php版本为7.0的Linux apache2 Web服务器。22.看起来设置根本不起作用:( 这个ini文件位于以下位置:根据。当我查看文件夹时,我看到三个文件(设置告诉我正在使用的文件),和。 所以我查找了,它是,我将它改为,然后。我对所有的人都这样做了。ini文件保存了它们,重新启动apache2并刷新了phpinfo()页面,但什么都没有发生。我试图在所有窗口中更改其他设置。ini

  • 我尝试将ini文件解析为可以在ant脚本中使用的属性。我有以下几点: 我试图做的是解析所有的name=value对,并将它们放入属性中,如:section。名称=值; 不知何故,“echoMsg”目标中没有记住该部分。我想记住部门名称。 所以 应该成为: 这是我的ant脚本的输出: 如您所见,未设置最后一个“${prevSection}”。我希望它是“全球性的”。 我试着用它来代替财产,但没有区别

  • 我有一个来自3的Vue项目。十、 我在

  • 我的springboot版本是2.3.7。我知道spring boot starter验证不是spring boot starter web的可传递依赖项。但即使单独添加了它,我的注释也不起作用。 //下面的依赖我已经添加build.gradle编译'org.springframework.boot: spring-boot-starter-validation' //我希望在请求时出错的示例类