Spring:在Project

时间:2017-04-19 14:06:29

标签: mysql spring spring-data-jpa

我尝试在我的项目中包含一个MySQL-DB。

我已经安装了MySQL程序,创建了一个DB(架构)并为访问验证设置了密码和用户名。

包含pom-file依赖项等。

现在我被我的application.properties:

困住了
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/asndb
spring.datasource.username=root
spring.datasource.password=asnTeam1
spring.jpa.hibernate.ddl-auto=create

在MySQL管理器中,我可以看到模型中的所有属性,因此连接应该可以正常工作,对吧?

我错了什么?我需要MySQL客户端吗?

更新更改了application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/asndb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=asnTeam1
spring.jpa.hibernate.ddl-auto=create
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.jpa.show-sql = true
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

现在我想用MySQL客户端打开我的data.sql文件。但是我的sql语法中有错误。在插入声明之后:

INSERT INTO USER (FIRST_NAME, LAST_NAME, USERNAME, PASSWORD, USER_ROLE) VALUES('Admin', 'Istrator', 'admin', '$2a$10$W9xQIwa/FstPUvcbzJXnQ.XjVdTyIcCEp.g6VCq1gYuSsQNjJjbJG', 'ADMIN')

INSERT INTO USER (FIRST_NAME, LAST_NAME, USERNAME, PASSWORD, USER_ROLE) VALUES('Bernd', 'Menia', 'bernd', '$2a$10$6dQcayeT/JAFvgFvzIjlcew5z9cmdCrGlv57.BGnIKvPXTDsQm7hG', 'PARENT')
INSERT INTO PARENT (FAMILY_STATUS, LOCATION, POSTCODE, STREET_NAME, IMG_NAME, STATUS, ID) VALUES ('MARRIED', 'Innsbruck', '6020', 'Bahnhofstraße', 'john.jpg',TRUE, SELECT ID FROM USER WHERE USERNAME = 'bernd')

我错了什么?

SOLUTION:

从上面插入较大的application.properties,并在第一次spring-boot后插入ddl-auto=trueinitialize=true的持久数据库注释。

User是MySQL中的保留关键字,因此不允许使用。

用spring-app中的data.sql文件填充mySQL数据库是不可能的,所以我通过My​​SQL-Workbench打开文件并执行语句。

2 个答案:

答案 0 :(得分:3)

遇到了这个post的类似问题。希望这会有所帮助。

而不是

spring.datasource.url=jdbc:mysql://localhost:3306/asndb

试试这个:

spring.datasource.url=jdbc:mysql://localhost:3306/asndb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

答案 1 :(得分:1)

要在数据库表中插入数据,请确保已打开数据库,因此在MySQL客户端中,请从以下位置开始:

grep -r '#!/' *

并检查您的表:mysql>use asndb; user是否真的存在:

parent

之后您可以插入数据:

mysql>show tables;

INSERT INTO asndb.USER(.....); 您无法使用