Java Jooq为不同的数据库生成不同的文件名
因此,我目前正在学习环境中使用jooq,希望能够在其他数据库中简单地使用它。最初有一个sqlite数据库,并使用以下针对maven的pom配置迁移到mariadb,唯一的区别是db url、驱动程序和元数据Java Jooq为不同的数据库生成不同的文件名,java,maven,jooq,Java,Maven,Jooq,因此,我目前正在学习环境中使用jooq,希望能够在其他数据库中简单地使用它。最初有一个sqlite数据库,并使用以下针对maven的pom配置迁移到mariadb,唯一的区别是db url、驱动程序和元数据 <plugin> <groupId>org.jooq</groupId> <artifactId>jooq-codegen-maven</artifa
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>3.13.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<jdbc>
<driver>org.mariadb.jdbc.Driver</driver>
<!--suppress UnresolvedMavenProperty -->
<url>${db.url}</url>
</jdbc>
<generator>
<database>
<name>org.jooq.meta.mariadb.MariaDBDatabase</name>
<includes>.*</includes>
</database>
<target>
<packageName>org.learn_java.db.autogen</packageName>
</target>
</generator>
</configuration>
</plugin>
它在不同的位置生成Info表
.tables.INFO // for sqlite
.tables.Info.INFO // for mariadb
有没有办法标准化它在哪里生成表类?在SQLite中,没有模式,即只有默认模式。在其他数据库产品中,有一种模式的概念(在SQLServer的情况下,甚至还有目录),它在数据库和jOOQ生成的代码中充当数据库对象的名称空间 您没有为代码生成指定要包含的模式,因此jOOQ为所有可用的模式生成代码(在SQLite中只有一个,在MariaDB中有几个),为每个模式生成额外的子包。要防止出现这种情况,请使用
:
org.jooq.meta.mariadb.MariaDBDatabase
信息
.*
。或者,您可以。在SQLite中,没有模式,即只有默认模式。在其他数据库产品中,有一种模式的概念(在SQLServer的情况下,甚至还有目录),它在数据库和jOOQ生成的代码中充当数据库对象的名称空间 您没有为代码生成指定要包含的模式,因此jOOQ为所有可用的模式生成代码(在SQLite中只有一个,在MariaDB中有几个),为每个模式生成额外的子包。要防止出现这种情况,请使用
:
org.jooq.meta.mariadb.MariaDBDatabase
信息
.*
。或者,你也可以
CREATE TABLE IF NOT EXISTS INFO
(
TAG_NAME varchar(30) PRIMARY KEY,
MESSAGE varchar(2000) NOT NULL
);
.tables.INFO // for sqlite
.tables.Info.INFO // for mariadb