数据库名称和属性
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
<database/>元素中的两个主要元素是<name/>,它指定用于实现数据库元数据源的类,以及一个可选的键/值<properties/>列表(取决于该类,详细信息请参见后面的章节)。例如XML 数据库
XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
<generator>
<database>
<name>org.jooq.meta.xml.XMLDatabase</name>
<properties>
<property>
<key>dialect</key>
<value>MYSQL</value>
</property>
<property>
<key>xmlFile</key>
<value>/path/to/database.xml</value>
</property>
</properties>
</database>
</generator>
</configuration>
有关更多详细信息,请参见配置 XSD、独立代码生成和maven 代码生成。
new org.jooq.meta.jaxb.Configuration()
.withGenerator(new Generator()
.withDatabase(new Database()
.withName("org.jooq.meta.xml.XMLDatabase")
.withProperties(
new Property()
.withKey("dialect")
.withValue("MYSQL"),
new Property()
.withKey("xmlFile")
.withValue("/path/to/database.xml")
)
)
)
import org.jooq.meta.jaxb.*
configuration {
generator {
database {
name = "org.jooq.meta.xml.XMLDatabase"
properties {
property {
key = "dialect"
value = "MYSQL"
}
property {
key = "xmlFile"
value = "/path/to/database.xml"
}
}
}
}
}
有关更多详细信息,请参见配置 XSD和gradle 代码生成。
configuration {
generator {
database {
name = "org.jooq.meta.xml.XMLDatabase"
properties {
property {
key = "dialect"
value = "MYSQL"
}
property {
key = "xmlFile"
value = "/path/to/database.xml"
}
}
}
}
}
有关更多详细信息,请参见配置 XSD和gradle 代码生成。
// The jOOQ-codegen-gradle plugin has been introduced in version 3.19. // Please use the official plugin instead of the third party plugin that was recommended before.
如果没有提供名称,则默认的<name/>将从 JDBC 连接派生。如果要专门指定 SQL 方言的数据库名称,jOOQ 将开箱即用地支持以下任何值
-
org.jooq.meta.ase.ASEDatabase -
org.jooq.meta.auroramysql.AuroraMySQLDatabase -
org.jooq.meta.aurorapostgres.AuroraPostgresDatabase -
org.jooq.meta.cockroachdb.CockroachDBDatabase -
org.jooq.meta.db2.DB2Database -
org.jooq.meta.derby.DerbyDatabase -
org.jooq.meta.duckdb.DuckDBDatabase -
org.jooq.meta.firebird.FirebirdDatabase -
org.jooq.meta.h2.H2Database -
org.jooq.meta.hana.HanaDatabase -
org.jooq.meta.hsqldb.HSQLDBDatabase -
org.jooq.meta.ignite.IgniteDatabase -
org.jooq.meta.informix.InformixDatabase -
org.jooq.meta.ingres.IngresDatabase -
org.jooq.meta.mariadb.MariaDBDatabase -
org.jooq.meta.mysql.MySQLDatabase -
org.jooq.meta.oracle.OracleDatabase -
org.jooq.meta.postgres.PostgresDatabase -
org.jooq.meta.redshift.RedshiftDatabase -
org.jooq.meta.snowflake.SnowflakeDatabase -
org.jooq.meta.sqldatawarehouse.SQLDataWarehouseDatabase -
org.jooq.meta.sqlite.SQLiteDatabase -
org.jooq.meta.sqlserver.SQLServerDatabase -
org.jooq.meta.sybase.SybaseDatabase -
org.jooq.meta.teradata.TeradataDatabase -
org.jooq.meta.trino.TrinoDatabase -
org.jooq.meta.vertica.VerticaDatabase
或者,如果要为不受支持的数据库版本/方言等反向工程通用的 JDBC java.sql.DatabaseMetaData源,也可以指定以下数据库
-
org.jooq.meta.jdbc.JDBCDatabase
此外,还有两种开箱即用的数据库元数据源,它们不依赖于 JDBC 连接:JPADatabase(用于反向工程 JPA 注释实体)和XMLDatabase(用于反向工程 XML 文件)。有关更多详细信息,请参阅相应的章节。
最后但并非最不重要的一点是,您当然可以通过实现 jooq-meta 模块中的org.jooq.meta.Database来实现自己的。
如果您要实现自定义数据库,请确保它作为代码生成器依赖项可供代码生成器使用
反馈
您对此页面有任何反馈吗? 我们很乐意听到它!