返回

实体类生成:mybatis-generator-gui 复合主键配置详解

数据库

使用 mybatis-generator-gui 生成具有复合主键的实体类

引言

在使用 MyBatis 框架进行持久化操作时,生成实体类、映射器接口和 SQL 映射 XML 文件是一项繁琐的任务。为了简化这一过程,mybatis-generator-gui 应运而生。它是一款功能强大的工具,允许开发人员从数据库表中自动生成这些文件。

然而,当表拥有复合主键时,生成实体类需要进行一些额外的配置。本指南将详细介绍如何使用 mybatis-generator-gui 为具有复合主键的表生成实体类。

配置 mybatis-generator-gui

  1. 打开 mybatis-generator-gui 并连接到您的数据库。

  2. 选择要生成代码的表 ,该表必须拥有复合主键。

  3. “主键策略” 下拉菜单中选择 “复合主键”

  4. “复合主键列” 字段中指定复合主键列的名称,以逗号分隔。例如,如果您的复合主键由 idname 列组成,则输入 id, name

  5. 单击“生成” 按钮以生成实体类、映射器接口和 SQL 映射 XML 文件。

生成实体类

mybatis-generator-gui 将生成两个实体类:

  • xxx 此实体类包含表的所有字段,包括复合主键字段。
  • xxxKey 此实体类仅包含复合主键字段。

字段映射

默认情况下,mybatis-generator-gui 将为每个表字段创建一个属性。但是,对于复合主键,需要为复合主键列创建单独的实体类。为此,请在 xxx 实体类的注释中指定 @Column 注解,如下所示:

@Column(name = "id")
private Integer id;

@Column(name = "name")
private String name;

配置选项

mybatis-generator-gui 提供了以下配置选项,用于自定义实体类的生成:

  • 表名称前缀和后缀: 用于在生成代码时添加前缀或后缀到表名。
  • 实体名称前缀和后缀: 用于在生成代码时添加前缀或后缀到实体类名。
  • 字段类型映射: 允许您指定如何将数据库类型映射到 Java 类型。
  • 注释生成: 您可以配置是否生成注释以及注释的类型。

示例

以下是一个使用 mybatis-generator-gui 为具有复合主键的表生成实体类的示例配置:

<configuration>
  <context id="myBatisContext">
    <table tableName="user">
      <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" />
      <columnOverride column="id" property="id" javaType="java.lang.Integer" />
      <columnOverride column="name" property="name" javaType="java.lang.String" />
      <primaryKey column="id" />
      <primaryKey column="name" />
    </table>
  </context>
</configuration>

常见问题解答

  1. 如何指定复合主键的顺序?

mybatis-generator-gui 根据复合主键列在表中的顺序自动确定顺序。

  1. 是否可以同时使用单一主键和复合主键?

不支持同时使用单一主键和复合主键。每个表只能有一种主键策略。

  1. 我可以在哪里找到有关 mybatis-generator-gui 的更多信息?

有关 mybatis-generator-gui 的更多信息,请访问其官方网站:https://mybatis.org/generator/generator-gui/

  1. 如何处理具有多列复合主键的表?

使用 mybatis-generator-gui 可以轻松处理具有多列复合主键的表。只需在 “复合主键列” 字段中指定所有复合主键列的名称,以逗号分隔即可。

  1. 是否可以在生成的代码中使用自定义注释?

是的,您可以在 xxx 实体类的注释中使用自定义注释。只需将自定义注释添加到 JavaDoc 注释即可。

结论

遵循本指南中的步骤,您可以轻松配置 mybatis-generator-gui 以生成具有复合主键的实体类。生成的代码将遵循最佳实践,并使您能够轻松与 MyBatis 框架集成。