可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

目录和模式映射

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

这些配置元素将两个特性组合在一起

  1. 它们允许指定一个或多个目录(默认:所有目录)以及一个或多个模式(默认:所有模式)以包含在代码生成器中。这与包括和排除元素的工作方式类似,但它应用于更早的阶段。
  2. 一旦指定了所有“输入”目录和模式,就可以将它们中的每一个与匹配的“输出”目录或模式关联起来,在这种情况下,“输入”将通过代码生成器映射到“输出”。有关此的更多详细信息,请参阅关于模式映射的手册部分

有两种操作“输入”和“输出”目录和模式配置的方法:“顶层”和“嵌套”。请注意,目录仅在极少数数据库中受支持,因此通常用户只会使用“输入”和“输出”模式功能。

顶层配置

这种模式更适用于小型项目或快速教程,其中只需要生成单个目录和/或单个模式。在这种情况下,可以应用以下“顶层”配置元素

仅读取单个模式(来自所有目录,但在大多数数据库中,只有一个“默认目录”)

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <inputSchema>my_schema</inputSchema>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withInputSchema("my_schema")
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      inputSchema = "my_schema"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      inputSchema = "my_schema"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

仅读取单个目录及其所有模式

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <inputCatalog>my_catalog</inputCatalog>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withInputCatalog("my_catalog")
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      inputCatalog = "my_catalog"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      inputCatalog = "my_catalog"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

仅读取单个目录和单个模式

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <inputCatalog>my_catalog</inputCatalog>
      <inputSchema>my_schema</inputSchema>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withInputCatalog("my_catalog")
      .withInputSchema("my_schema")
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      inputCatalog = "my_catalog"
      inputSchema = "my_schema"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      inputCatalog = "my_catalog"
      inputSchema = "my_schema"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

嵌套配置

这种模式更适用于需要包含多个目录和/或模式的较大项目。以下示例显示了不同的可能配置

读取两个或多个模式(来自所有目录,但在大多数数据库中,只有一个“默认目录”)

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <schemata>
        <schema>
          <inputSchema>schema1</inputSchema>
        </schema>
        <schema>
          <inputSchema>schema2</inputSchema>
        </schema>
      </schemata>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withSchemata(
        new SchemaMappingType()
          .withInputSchema("schema1"),
        new SchemaMappingType()
          .withInputSchema("schema2")
      )
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      schemata {
        schema {
          inputSchema = "schema1"
        }
        schema {
          inputSchema = "schema2"
        }
      }
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      schemata {
        schema {
          inputSchema = "schema1"
        }
        schema {
          inputSchema = "schema2"
        }
      }
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

读取两个或多个目录及其所有模式

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <catalogs>
        <catalog>
          <inputCatalog>catalog1</inputCatalog>
        </catalog>
        <catalog>
          <inputCatalog>catalog2</inputCatalog>
        </catalog>
      </catalogs>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withCatalogs(
        new CatalogMappingType()
          .withInputCatalog("catalog1"),
        new CatalogMappingType()
          .withInputCatalog("catalog2")
      )
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      catalogs {
        catalog {
          inputCatalog = "catalog1"
        }
        catalog {
          inputCatalog = "catalog2"
        }
      }
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      catalogs {
        catalog {
          inputCatalog = "catalog1"
        }
        catalog {
          inputCatalog = "catalog2"
        }
      }
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

从一个或多个特定目录读取两个或多个模式

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <catalogs>
        <catalog>
          <inputCatalog>catalog</inputCatalog>
          <schemata>
            <schema>
              <inputSchema>schema1</inputSchema>
            </schema>
            <schema>
              <inputSchema>schema2</inputSchema>
            </schema>
          </schemata>
        </catalog>
      </catalogs>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withCatalogs(
        new CatalogMappingType()
          .withInputCatalog("catalog")
          .withSchemata(
            new SchemaMappingType()
              .withInputSchema("schema1"),
            new SchemaMappingType()
              .withInputSchema("schema2")
          )
      )
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      catalogs {
        catalog {
          inputCatalog = "catalog"
          schemata {
            schema {
              inputSchema = "schema1"
            }
            schema {
              inputSchema = "schema2"
            }
          }
        }
      }
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      catalogs {
        catalog {
          inputCatalog = "catalog"
          schemata {
            schema {
              inputSchema = "schema1"
            }
            schema {
              inputSchema = "schema2"
            }
          }
        }
      }
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

目录和模式映射

无论您可以在哪里放置inputCataloginputSchema元素(顶层或嵌套),如果您希望从目录和模式映射功能中获益,您也可以放置匹配的映射指令。以下配置是可能的

将输入名称映射到特定的输出名称

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <inputCatalog>my_input_catalog</inputCatalog>
      <outputCatalog>my_output_catalog</outputCatalog>
      <inputSchema>my_input_schema</inputSchema>
      <outputSchema>my_output_schema</outputSchema>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withInputCatalog("my_input_catalog")
      .withOutputCatalog("my_output_catalog")
      .withInputSchema("my_input_schema")
      .withOutputSchema("my_output_schema")
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      inputCatalog = "my_input_catalog"
      outputCatalog = "my_output_catalog"
      inputSchema = "my_input_schema"
      outputSchema = "my_output_schema"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      inputCatalog = "my_input_catalog"
      outputCatalog = "my_output_catalog"
      inputSchema = "my_input_schema"
      outputSchema = "my_output_schema"
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

将输入名称映射到“默认”目录或模式(即,没有名称)

XML(独立和 Maven)
编程方式
Gradle (Kotlin)
Gradle (Groovy)
Gradle(第三方)
<configuration>
  <generator>
    <database>
      <inputCatalog>my_input_catalog</inputCatalog>
      <outputCatalogToDefault>true</outputCatalogToDefault>
      <inputSchema>my_input_schema</inputSchema>
      <outputSchemaToDefault>true</outputSchemaToDefault>
    </database>
  </generator>
</configuration>

有关更多详细信息,请参见配置 XSD独立代码生成maven 代码生成

new org.jooq.meta.jaxb.Configuration()
  .withGenerator(new Generator()
    .withDatabase(new Database()
      .withInputCatalog("my_input_catalog")
      .withOutputCatalogToDefault(true)
      .withInputSchema("my_input_schema")
      .withOutputSchemaToDefault(true)
    )
  )

有关更多详细信息,请参见配置 XSD以编程方式进行代码生成

import org.jooq.meta.jaxb.*


configuration {
  generator {
    database {
      inputCatalog = "my_input_catalog"
      isOutputCatalogToDefault = true
      inputSchema = "my_input_schema"
      isOutputSchemaToDefault = true
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

configuration {
  generator {
    database {
      inputCatalog = "my_input_catalog"
      outputCatalogToDefault = true
      inputSchema = "my_input_schema"
      outputSchemaToDefault = true
    }
  }
}

有关更多详细信息,请参见配置 XSDgradle 代码生成

// 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.

有关目录和模式映射功能的更多信息,请参阅手册的相关部分

反馈

您对此页面有任何反馈吗?我们很乐意听到!

The jOOQ Logo