用阿里云的 Spring Initializr 镜像构建了 一个 Spring Boot 项目用来学习Spring Data JPA ,代码写完之后运行项目出现了项目去连接的数据库不是我在配置文件中配置的数据库的问题。
解决方法:使用 Spring Initializr 重新构建项目,把代码粘贴过去就好了。
报错信息:
2022-09-17 10:32:17.566 ERROR 17280 --- [eate-1632300236] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://localhost:3306/blue?serverTimezone=UTC, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user '***'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) ~[druid-1.1.21.jar:1.1.21]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) ~[druid-1.1.21.jar:1.1.21]
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2753) ~[druid-1.1.21.jar:1.1.21]
application.yml配置文件如下:
#配置数据库基本信息以及JAP相关配置
spring:
datasource:
url: jdbc:mysql:///jpa?serverTimezone=UTC #///就省略了ip跟端口
username: root
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#JAP相关配置
jpa:
show-sql: true #是否在控制台打印JAP执行过程生成的SQL
database: mysql #JAP对应使用的数据库是MySql
hibernate:
ddl-auto: update #在项目启动时根据实体类更新数据库中的表
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL57Dialect #表示数据库的方言是MySQL57Dialect
运行截图:
重新构建项目后运行截图: