2014-12-03 54 views
1

我试图从我的数据库生成JOOQ Java代码。无法从命令行生成java:org.jooq.exception.DetachedException:无法执行查询。没有连接配置

当我执行

java -cp "bla.xml;jooq-3.5.0.jar;jooq-meta-3.5.0.jar;jooq-codegen-3.5.0.jar;jtds.jar" org.jooq.util.GenerationTool bla.xml 

我得到:

org.jooq.exception.DetachedException: Cannot execute query. No Connection configured 
     at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:303) 

我不知道为什么它不会生成Java代码。 的启动表示:

Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: Initialising properties : bla.xml 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger warn 
Warnung: DEPRECATED    : The configuration property /configuration/generator/database/dateAsTimestamp is deprecated as it is superseded by custom bindings and converters. It will thus be removed in the future. 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: License parameters 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: Thank you for using jOOQ and jOOQ's code generator 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: Database parameters 
Dez 03, 2014 11:43:33 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: dialect    : SQLSERVER 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: URL     : 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: target dir    : C:/Users/x/Downloads/jOOQ-3.5.0/jOOQ-lib/src 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: target package   : de.xy.model.database 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: includes    : [.*] 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: excludes    : [] 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: includeExcludeColumns : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: DefaultGenerator parameters 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: strategy    : class org.jooq.util.DefaultGeneratorStrategy 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: deprecated    : true 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: generated annotation : true 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: JPA annotations  : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: validation annotations : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: instance fields  : true 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: records    : true 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: pojos     : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: immutable pojos  : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: interfaces    : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: daos     : false 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: relations    : true 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: global references  : true 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: Generation remarks 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: none 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: ---------------------------------------------------------- 
Dez 03, 2014 11:43:34 AM org.jooq.tools.JooqLogger info 
Information: 

的bla.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<configuration> 
    <!-- Configure the database connection here --> 
    <jdbc> 
    <driver>net.sourceforge.jtds.jdbc.Driver</driver> 
    <url>jdbc:sqlserver://localhost:1433;databaseName=x</url> 


    <!-- You can also pass user/password and other JDBC properties in the optional properties tag: --> 
    <properties> 
     <property><key>user</key><value>x</value></property> 
     <property><key>password</key><value>x</value></property> 
    </properties> 
    </jdbc> 

    <generator> 
    <database> 
     <!-- The database dialect from jooq-meta. Available dialects are 
      named org.util.[database].[database]Database. 

      Natively supported values are: 

       org.jooq.util.ase.ASEDatabase 
       org.jooq.util.cubrid.CUBRIDDatabase 
       org.jooq.util.db2.DB2Database 
       org.jooq.util.derby.DerbyDatabase 
       org.jooq.util.firebird.FirebirdDatabase 
       org.jooq.util.h2.H2Database 
       org.jooq.util.hsqldb.HSQLDBDatabase 
       org.jooq.util.informix.InformixDatabase 
       org.jooq.util.ingres.IngresDatabase 
       org.jooq.util.mariadb.MariaDBDatabase 
       org.jooq.util.mysql.MySQLDatabase 
       org.jooq.util.oracle.OracleDatabase 
       org.jooq.util.postgres.PostgresDatabase 
       org.jooq.util.sqlite.SQLiteDatabaes 
       org.jooq.util.sqlserver.SQLServerDatabase 
       org.jooq.util.sybase.SybaseDatabase 

      This value can be used to reverse-engineer generic JDBC DatabaseMetaData (e.g. for MS Access) 

       org.jooq.util.jdbc.JDBCDatabase 

      This value can be used to reverse-engineer standard jOOQ-meta XML formats 

       org.jooq.util.xml.XMLDatabase 

      You can also provide your own org.jooq.util.Database implementation 
      here, if your database is currently not supported --> 
     <name>org.jooq.util.sqlserver.SQLServerDatabase</name> 

     <!-- All elements that are generated from your schema (A Java regular expression. 
      Use the pipe to separate several expressions) Watch out for 
      case-sensitivity. Depending on your database, this might be 
      important! 

      You can create case-insensitive regular expressions using this syntax: (?i:expr) 

      Whitespace is ignored and comments are possible. 
      --> 
     <includes>.*</includes> 

     <!-- All elements that are excluded from your schema (A Java regular expression. 
      Use the pipe to separate several expressions). Excludes match before 
      includes --> 
     <excludes> 
    <!--   UNUSED_TABLE    # This table (unqualified name) should not be generated 
     | PREFIX_.*     # Objects with a given prefix should not be generated 
     | SECRET_SCHEMA/.SECRET_TABLE # This table (qualified name) should not be generated 
     | SECRET_ROUTINE    # This routine (unqualified name) ... 
     --> 
     </excludes> 

     <!-- The schema that is used locally as a source for meta information. 
      This could be your development schema or the production schema, etc 
      This cannot be combined with the schemata element. 

      If left empty, jOOQ will generate all available schemata. See the 
      manual's next section to learn how to generate several schemata --> 
     <inputSchema>dbo</inputSchema> 
    </database> 

    <generate> 
     <!-- Generation flags: See advanced configuration properties --> 
    </generate> 

    <target> 
     <!-- The destination package of your generated classes (within the 
      destination directory) 

      jOOQ may append the schema name to this package if generating multiple schemas, 
      e.g. org.jooq.your.packagename.schema1 
       org.jooq.your.packagename.schema2 --> 
     <packageName>de.x.model.database</packageName> 

     <!-- The destination directory of your generated classes --> 
     <directory>C:/Users/athom/Downloads/jOOQ-3.5.0/jOOQ-lib/src</directory> 
    </target> 
    </generator> 
</configuration> 
+2

你可以显示你正在使用的codegen配置(bla.xml)吗?你有没有正确定义jdbc部分,如[本例](http://www.jooq.org/doc/3.5/manual/code-generation/codegen-configuration/)? – assylias 2014-12-03 11:26:15

+0

更新了问题。我用这个例子。 – axaluss 2014-12-03 11:39:14

+1

你的命令行调用看起来不错。您遇到第一个异常是否是异常?它的完整堆栈跟踪是什么?另外,你确定你的连接字符串是正确的吗?如果你使用的是jtds(而不是商用的SQL Server JDBC驱动程序),[我怀疑你应该在''jtds'中加入一些东西......?](http://stackoverflow.com/a/1862508/521799) – 2014-12-03 15:09:07

回答