我正在考虑将jOOQ用作类型安全的DB方言独立SQL生成器,因为我需要在较大的应用程序中动态创建一个小型数据库DDL脚本和大量INSERT和UPDATE语句。然后我们提供文件作为下载。
我在MySQL中手动创建了初始数据库模式,并生成了jOOQ类来使用它。目前,JOOQ用于在空MySql模式中生成一堆插入。这很好。
我想为用户提供一系列不同的数据库方案,以便导出到:sqlite
,MySQL/Maria
,Postgres
,如果许可是商业广告,则可能是{{1 },Access
等,例如
Oracle
当然,我可以手动为每个RDBMS重新创建基本模式,但这很乏味,容易出错并且似乎是多余的:是不是有一种聪明的方法来使用我用MySQL DB创建的jOOQ生成的Metamodel schema用于为其他SQL方言生成模式吗?
答案 0 :(得分:0)
此功能已通过DSLContext.ddl()
方法提供,这些方法已在jOOQ 3.8中添加#3160。
为了生成和执行DDL查询(CREATE TABLE
,ALTER TABLE ADD CONSTRAINT
等),只需将表名或模式名称传递给ddl()
方法:
Queries queries = DSL.using(configuration).ddl(EMPLOYEES);
for (Query query : queries)
query.execute();