mybatis嵌套查询一对多
时间: 2023-11-09 15:02:21 浏览: 107
在 MyBatis 中,可以使用嵌套查询实现一对多的查询。具体实现方式如下:
1. 在 mapper.xml 文件中,编写主查询语句,使用 `resultMap` 标签定义结果集映射。
2. 在 `resultMap` 中,使用 `association` 标签定义关联对象,并使用 `select` 标签指定关联查询语句。
3. 在关联查询语句中,使用 `where` 标签指定关联条件,并使用 `resultMap` 标签定义结果集映射。
示例代码如下:
```xml
<!-- 主查询语句 -->
<select id="selectOrder" resultMap="orderResultMap">
SELECT * FROM orders WHERE order_id = #{orderId}
</select>
<!-- 结果集映射 -->
<resultMap id="orderResultMap" type="Order">
<id property="orderId" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="totalPrice" column="total_price"/>
<!-- 定义关联对象 -->
<association property="user" javaType="User" resultMap="userResultMap"/>
</resultMap>
<!-- 关联查询语句 -->
<select id="selectUser" resultMap="userResultMap">
SELECT * FROM users WHERE user_id = #{userId}
</select>
<!-- 结果集映射 -->
<resultMap id="userResultMap" type="User">
<id property="userId" column="user_id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
```
阅读全文