mybatisplus中多表联查 获取多张表中的信息 如何书写xml
时间: 2023-10-17 09:22:48 浏览: 94
MyBatis Plus 的多表联接、分页查询实现方法,源码加sql
在 Mybatis-Plus 中进行多表联查,可以通过编写 XML 文件的方式来实现。以下是一个示例:
假设有两张表,一张是用户表(user),一张是订单表(order),它们之间存在一对多的关系,即一个用户可以对应多个订单。
1. 首先在 User 实体类中定义一个 orders 属性,表示一个用户对应的多个订单:
```
public class User {
private Long id;
private String name;
private List<Order> orders;
// getter 和 setter 略
}
public class Order {
private Long id;
private Long userId;
private String orderNo;
// getter 和 setter 略
}
```
2. 在 UserMapper.xml 中编写多表联查的 SQL:
```
<select id="selectUserWithOrders" resultMap="userMap">
SELECT u.*, o.id as order_id, o.order_no
FROM user u
LEFT JOIN order o ON u.id = o.user_id
WHERE u.id = #{id}
</select>
<resultMap id="userMap" type="User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<collection property="orders" ofType="Order">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
</collection>
</resultMap>
```
3. 在 UserMapper 接口中定义 selectUserWithOrders 方法:
```
public interface UserMapper extends BaseMapper<User> {
User selectUserWithOrders(Long id);
}
```
4. 调用 selectUserWithOrders 方法即可获取用户及其对应的订单信息:
```
User user = userMapper.selectUserWithOrders(1L);
```
以上是一个简单的多表联查示例,具体的 SQL 语句可以根据实际情况进行调整。
阅读全文