mybatis一对多关联映射
时间: 2023-11-17 11:01:58 浏览: 116
Mybatis是一款优秀的ORM框架,支持一对一、一对多、多对一、多对多等关联映射。其中,一对多关联映射是指一个实体类中包含多个另一个实体类的对象。下面是一对多关联映射的实现方法:
1.在主实体类中定义一个包含从实体类对象的List集合属性。
2.在主实体类对应的Mapper.xml文件中,使用<collection>标签来映射从实体类对象的List集合属性。
3.在从实体类对应的Mapper.xml文件中,使用<association>标签来映射主实体类对象。
具体实现可以参考以下代码:
主实体类User:
```
public class User {
private Integer id;
private String username;
private List<Order> orders;
//getter和setter方法
}
```
从实体类Order:
```
public class Order {
private Integer id;
private String orderNo;
private User user;
//getter和setter方法
}
```
主实体类User对应的Mapper.xml文件:
```
<mapper namespace="com.biem.mapper.UsersMapper">
<resultMap id="userMap" type="User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<collection property="orders" ofType="Order">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
</collection>
</resultMap>
<select id="getUserById" resultMap="userMap">
select * from user where id=#{id}
</select>
</mapper>
```
从实体类Order对应的Mapper.xml文件:
```
<mapper namespace="com.biem.mapper.OrdersMapper">
<resultMap id="orderMap" type="Order">
<id property="id" column="id"/>
<result property="orderNo" column="order_no"/>
<association property="user" javaType="User">
<id property="id" column="user_id"/>
<result property="username" column="username"/>
</association>
</resultMap>
<select id="getOrderById" resultMap="orderMap">
select * from order where id=#{id}
</select>
</mapper>
```
阅读全文