Java 从文件生成JOOQ架构

Java 从文件生成JOOQ架构,java,jooq,Java,Jooq,是否可以使用JOOQ从sql文件生成Java类而无需数据库连接? 我试图指定inputSchema标记,但出现异常: WARNING: SQL exception : Exception while executing meta query: Cannot execute query. No Connection configured 我的配置如下所示: <configuration> <generator>

是否可以使用JOOQ从sql文件生成Java类而无需数据库连接? 我试图指定inputSchema标记,但出现异常:

WARNING: SQL exception            : Exception while executing meta query: Cannot execute query. No Connection configured
我的配置如下所示:

<configuration>
                <generator>
                    <database>
                        <name>org.jooq.util.postgres.PostgresDatabase</name>
                        <inputSchema>filesystem:src/main/resources/schema.sql</inputSchema>
                        <includes>.*</includes>
                        <outputSchemaToDefault>true</outputSchemaToDefault>
                    </database>
                    <target>
                        <packageName>pckg.some</packageName>
                        <directory>target/generated-sources/jooq</directory>
                    </target>
                </generator>
</configuration>

org.jooq.util.postgres.PostgresDatabase
文件系统:src/main/resources/schema.sql
.*
真的
几公斤
目标/生成源/jooq

是的,你可以做这样的事情,尽管不是你期望的方式。首先,jOOQ不允许您以这种方式解析SQL语句和派生模式元信息。对于目前支持的所有20个RDBMS来说,这将是一种复杂的实现方式

但是,您有两种选择:

1.在生成代码之前运行SQL文件 如果SQL文件与数据库供应商无关,则可以在嵌入式数据库中运行该文件,如,然后从该数据库运行代码生成器

这篇博文中描述了类似的方法,其中使用JPA注释的Java文件使用Hibernate生成这样的模式,然后运行jOOQ生成器:

2.使用中间XML文件 jOOQ支持从XML文件(或其他元源)加载模式元信息。从手册中:


org.jooq.util.oracle.oracle数据库
要送入
XMLDatabase
的XML文件的XSD模式可在此处找到:

另见: