使用 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&amp;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 实例

jhipster:elasticsearch节点不可用

“没有 TranslateService 的提供者”错误以某种方式连接到 npm install

无法使用php连接错误连接到mysql:无法连接到'localhost'(10061)上的MySQL服务器[重复]

无法使用 SQuirreL 连接到 MySQL 数据库

如何仅使用 ajax 和 javascript 连接到 mysql 数据库?