使用 Jhipster 连接到 Mysql
Posted
技术标签:
【中文标题】使用 Jhipster 连接到 Mysql【英文标题】:Connecting to Mysql using Jhipster 【发布时间】:2018-04-24 01:05:36 【问题描述】:我已经生成了一个 spring boot + angular 应用程序。使用 jdl 导入实体。与 h2 正常工作。我是新手,想使用 mysql。我在 application-dev.yml 中配置了数据源,代码如下。
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/blogdb?useUnicode=true&characterEncoding=utf8&useSSL=false
username: name
password:pass
h2:
console:
enabled: false
hikari:
data-source-properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
database: mysql
show-sql: true
2) 我已使用以下代码将我的 pom 配置从 h2 更新为 mysql。
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>$liquibase.version</version>
<configuration>
<changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>src/main/resources/config/liquibase/changelog/$maven.build.timestamp_changelog.xml</diffChangeLogFile>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/blogdb</url>
<defaultSchemaName>blogdb</defaultSchemaName>
<username>name</username>
<password>**</password>
<referenceUrl>hibernate:spring:pt.farol.destfinder.domain?dialect=org.hibernate.dialect.MySQLInnoDBDialect&hibernate.ejb.naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
</configuration>
<dependencies>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>$javassist.version</version>
</dependency>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>$liquibase-hibernate5.version</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>$project.parent.version</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>$validation-api.version</version>
</dependency>
</dependencies>
</plugin>
问题当我运行我的项目时出现以下错误。
The Class-Path manifest attribute in C:\..\..\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar referenced one or more files that do not exist: C:\..\.\.m2\repository\org\liquibase\liquibase-core\3.5.3\lib\snakeyaml-1.13.jar
22:58:49.740 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
22:58:49.751 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter-[\w-]+/, /spring-boot/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/]
22:58:49.751 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/G:/Java%20Projects/target/classes/]
22:58:52.636 [restartedMain] DEBUG org.springframework.boot.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/G:/Java%20Projects/target/classes/]
编辑 git repository link
yo-rc.json 文件
"generator-jhipster":
"promptValues":
"packageName": "com.beam"
,
"jhipsterVersion": "4.10.2",
"baseName": "beam",
"packageName": "com.beam",
"packageFolder": "com/beam",
"serverPort": "8080",
"authenticationType": "session",
"hibernateCache": "ehcache",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": false,
"serviceDiscoveryType": false,
"buildTool": "maven",
"enableSocialSignIn": false,
"enableSwaggerCodegen": false,
"rememberMeKey": "801a22f60c33f866035c634e04c3b5b096fdedc6",
"clientFramework": "angularX",
"useSass": true,
"clientPackageManager": "yarn",
"applicationType": "monolith",
"testFrameworks": [],
"jhiPrefix": "jhi",
"enableTranslation": false
【问题讨论】:
您的 .m2 文件夹似乎已损坏,您可以尝试删除它并重新运行 mvnw 但是当我使用 h2 配置而不是 mysql 时,它可以正常工作。让我再试一次 命令 -> mvnw "应用程序启动失败" . 还有什么技巧吗? maven build with force update -u 【参考方案1】:这不是答案,但我需要比 cmets 更多的空间。
我已经使用您的 .yo-rc.json 文件和 jhipster 4.10.2 生成了一个应用程序,它工作正常。我也有 Class-Path 清单警告,但它是无害的,并且应用程序可以正常工作。
[INFO] --- spring-boot-maven-plugin:1.5.7.RELEASE:run (default-cli) @ beam ---
[INFO] Attaching agents: []
The Class-Path manifest attribute in C:\Users\Gaël\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar referenced one or more files tha
t do not exist: C:\Users\Gaël\.m2\repository\org\liquibase\liquibase-core\3.5.3\lib\snakeyaml-1.13.jar
22:15:34.613 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
22:15:34.617 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/,
2017-11-13 22:15:57.237 INFO 20472 --- [ restartedMain] com.beam.BeamApp :
----------------------------------------------------------
Application 'beam' is running! Access URLs:
Local: http://localhost:8180
External: http://172.27.112.1:8180
Profile(s): [swagger, dev]
----------------------------------------------------------
所以,我猜你没有粘贴真正的错误。 究竟是什么症状?
【讨论】:
所以我应该重新安装 maven 吗? PS:我粘贴了日志中显示的错误。与您的日志相同,但我的应用程序无法启动:)【参考方案2】:尝试新建一个jhipster应用,在创建的时候选择Mysql。这需要几分钟,您可以检查和比较。
【讨论】:
我已经生成了新项目,但在开始时仍然面临同样的问题。【参考方案3】:通常在 application-dev.yml 中的间距在密码中被认为是这样的
你的, 数据源: 类型:com.zaxxer.hikari.HikariDataSource 网址:jdbc:mysql://localhost:3306/blogdb?useUnicode=true&characterEncoding=utf8&useSSL=false 用户名:姓名 密码:通过 要做的是,
数据源: 类型:com.zaxxer.hikari.HikariDataSource 网址:jdbc:mysql://localhost:3306/blogdb?useUnicode=true&characterEncoding=utf8&useSSL=false 用户名:姓名 密码:通过
去看看
【讨论】:
欢迎来到***。请仔细阅读***.com/help/how-to-answer 并编辑您的答案以更清楚。【参考方案4】:当我尝试使用 Mysql 安装 JHipster 项目时,我遇到了同样的问题,当我更改时我的问题得到了解决
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/blogdb?useUnicode=true&characterEncoding=utf8&useSSL=false
username: name
password:pass
到
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/blogdb /*Removed the parameters*/
username: name
password:pass
【讨论】:
【参考方案5】:如果你使用 docker 我也有同样的错误,所以将 localhost 替换为你的 docker IP
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://192.168.99.100:3306/library
username: root
【讨论】:
也许更多细节? -- 我来自review,没有同样的问题。以上是关于使用 Jhipster 连接到 Mysql的主要内容,如果未能解决你的问题,请参考以下文章
通过 Java/Spring Boot 连接到 Docker Elasticsearch 实例
“没有 TranslateService 的提供者”错误以某种方式连接到 npm install