2

MySQLデータベースに対してquerydsl-sqlを使用できるようにプロジェクトをセットアップしようとしています。クラスを取得し、Mavenを使用してクラスを生成したいのですが、プラグインのセットアップに問題があります。

ここにある例から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>

mysql-connector-javaへの依存関係もpomで指定されます。私が得ている問題は、ドライバーが見つからないように見えることです。

[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] ------------------------------------------------------------------------

誰かがこれを手伝ってくれますか?どうすればドライバーを指定できますか?

4

2 に答える 2

2

依存関係は正しいように見えますが、JDBC URL がおかしいようです。試してみてください<jdbcUrl>jdbc:mysql://localhost:3306/alltrades</jdbcUrl>MySQL リファレンス マニュアルには、次のように記載されています。

MySQL Connector/J の JDBC URL 形式は次のとおりです。角括弧 ([、]) 内の項目はオプションです。

jdbc:mysql://[ホスト][,failoverhost...][:ポート]/[データベース] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

ホスト名が指定されていない場合、デフォルトで 127.0.0.1 になります。ポートが指定されていない場合、デフォルトは MySQL サーバーのデフォルトのポート番号である 3306 になります。

を指定する必要がある場合もありますjdbcPassword。その他のオプションについては、Querydsl Reference Manualを参照してください。

于 2011-03-01T18:05:12.787 に答える
1

ドライバーは正しく指定されています。ドライバーが間違っている場合は、別の Exception が発生します。

Class.forName(jdbcDriver); 
Connection conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);

これも単独で失敗しますか?jdbcUrl形式のエラーのようです。

于 2011-03-01T21:39:50.130 に答える