在不同的SQLDialect中从JOOQ Metamodel生成模式

时间:2014-09-26 21:57:02

标签: java database ddl jooq dialect

我正在考虑将jOOQ用作类型安全的DB方言独立SQL生成器,因为我需要在较大的应用程序中动态创建一个小型数据库DDL脚本和大量INSERT和UPDATE语句。然后我们提供文件作为下载。

我在MySQL中手动创建了初始数据库模式,并生成了jOOQ类来使用它。目前,JOOQ用于在空MySql模式中生成一堆插入。这很好。

我想为用户提供一系列不同的数据库方案,以便导出到:sqliteMySQL/MariaPostgres,如果许可是商业广告,则可能是{{1 },Access等,例如

Oracle

当然,我可以手动为每个RDBMS重新创建基本模式,但这很乏味,容易出错并且似乎是多余的:是不是有一种聪明的方法来使用我用MySQL DB创建的jOOQ生成的Metamodel schema用于为其他SQL方言生成模式吗?

1 个答案:

答案 0 :(得分:0)

此功能已通过DSLContext.ddl()方法提供,这些方法已在jOOQ 3.8中添加#3160

为了生成和执行DDL查询(CREATE TABLEALTER TABLE ADD CONSTRAINT等),只需将表名或模式名称传递给ddl()方法:

Queries queries = DSL.using(configuration).ddl(EMPLOYEES);
for (Query query : queries)
    query.execute();