java - 设置 Maven 插件以将 QueryDSL 与 MySQL 数据库结合使用

标签 java mysql maven maven-plugin querydsl

我正在尝试设置我的项目,以便我可以针对 MySQL 数据库使用 querydsl-sql。 我想获取类并使用 Maven 生成类,但在设置插件时遇到问题。

我尝试从可用示例 here 配置 pom.xml

<plugin>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-maven-plugin</artifactId>
    <version>2.1.0</version>
    <executions>
        <execution>
            <goals>
                <goal>export</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
        <jdbcUrl>jdbc:mysql:mydb:3306/alltrades</jdbcUrl>
        <jdbcUser>mvaz</jdbcUser>
        <packageName>com.three60t.tools.bonus.persistence</packageName>
        <targetFolder>${project.basedir}/target/generated-sources/java</targetFolder>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
    </dependencies>
</plugin>

pom.xml 中也给出了对 mysql-connector-java 的依赖。 我遇到的问题是它似乎找不到驱动程序:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building tools-bonus
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [querydsl:export {execution: default}]
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[ERROR] 
java.sql.SQLException: No suitable driver found for jdbc:mysql:mydb:3306/alltrades
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at com.mysema.query.maven.AbstractMetaDataExportMojo.execute(AbstractMetaDataExportMojo.java:134)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] No suitable driver found for jdbc:mysql:mydb:3306/alltrades

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Tue Mar 01 16:34:47 CET 2011
[INFO] Final Memory: 23M/219M
[INFO] ------------------------------------------------------------------------

有人可以帮我解决这个问题吗? 如何指定驱动程序?

最佳答案

您的依赖项似乎是正确的,但您的 JDBC URL 看起来很奇怪。试试<jdbcUrl>jdbc:mysql://localhost:3306/alltrades</jdbcUrl>MySQL Reference Manual声明如下:

The JDBC URL format for MySQL Connector/J is as follows, with items in square brackets ([, ]) being optional:

jdbc:mysql://[host][,failoverhost...][:port]/[database] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

If the host name is not specified, it defaults to 127.0.0.1. If the port is not specified, it defaults to 3306, the default port number for MySQL servers.

您可能还需要指定 jdbcPassword 。对于其他选项,请查看 Querydsl Reference Manual .

关于java - 设置 Maven 插件以将 QueryDSL 与 MySQL 数据库结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5156715/

相关文章:

java - 如何在intellij中通过jruby运行cuke4duke

mysql - cakephp 在具有多个搜索关键字的单列上查询 find_in_set 不起作用

php - MySQL SELECTS 的开销——最好按顺序使用一个或多个

java - 如何使用 JSch 连接到 SSH 后收到欢迎消息

java - 重载时编译器错误 - Java

mysql - 优化分层查询

java - mvn appengine :update and mvn appengine:deploy in Google App Engine 之间的区别

java - Maven 上的 POM 是什么?

eclipse - JUnit 测试用例在 eclipse 中通过,但在 Maven 构建中失败

java - MySQL 分区表的运行速度比同等的未分区表慢