mybatis generator表关联
时间: 2023-09-04 20:15:20 浏览: 126
mybatis generator
Myatis Generator 可以通过配置文件来生成与表关联的代码。下面是一个简单的例子:
假设我们有两个表:`user` 和 `order`,`order` 表中有一个 `user_id` 字段,用于表示该订单属于哪个用户。我们希望在生成代码时,能够自动生成 `Order` 对象中含有 `User` 对象的代码。
1. 首先,在 `generatorConfig.xml` 中添加以下配置:
```
<table tableName="order" domainObjectName="Order">
<property name="useActualColumnNames" value="true" />
<generatedKey column="id" sqlStatement="MySql" identity="true" />
<join tableName="user" domainObjectName="User">
<property name="suffix" value="ByUser" />
<property name="type" value="one" />
<property name="on" value="user.id = order.user_id" />
</join>
</table>
```
上述配置中:
- `tableName="order"`:表示要生成 `Order` 对象的代码。
- `domainObjectName="Order"`:表示生成的实体类名为 `Order`。
- `useActualColumnNames="true"`:表示使用表中列名作为实体类属性名。
- `<generatedKey>`:表示 `Order` 表中的主键为 `id`,并且是自增长的。
- `<join>`:表示与 `order` 表关联的 `user` 表。
- `domainObjectName="User"`:表示生成的实体类名为 `User`。
- `suffix="ByUser"`:表示在 `Order` 实体类中生成一个名为 `userByUser` 的属性,用于表示该订单所属的用户。
- `type="one"`:表示 `Order` 实体类中的 `userByUser` 属性是一个 `User` 对象。
- `on="user.id = order.user_id"`:表示 `order` 表中的 `user_id` 字段与 `user` 表中的 `id` 字段关联。
2. 运行 MyBatis Generator 生成代码。
运行 MyBatis Generator 时,会根据配置文件自动生成与表关联的代码。在本例中,会生成以下代码:
Order.java:
```java
public class Order {
private Integer id;
private Integer userId;
private User userByUser;
// getter and setter methods
}
```
User.java:
```java
public class User {
private Integer id;
private String name;
private String email;
// getter and setter methods
}
```
在 `Order` 类中会自动生成一个名为 `userByUser` 的属性,该属性类型为 `User`。通过该属性,可以方便地获取该订单所属的用户信息。
阅读全文