第一步:建立两张表并建立外键联系
我这里是客户与订单的表进行举例
第二步:建立对应关系的映射类(domain)
customer类
@Data
public class Customer {
private Integer cust_id;
private String cust_name;
private String cust_profession;
private String cust_phone;
private String email;
}
order类
@Data
public class Order {
private Integer orderId;
private String orderName;
private String orderNum;
private Customer customer;
}
第三步:编写mapper
public interface OrderMapper {
public List<Order> getAllOrder();
}
第四步:编写mapper.xml
方式一:association(建议使用)
<resultMap id="orderMap" type="com.ctbu.domain.Order">
<result property="orderId" column="orderId"/>
<result property="orderName" column="orderName"/>
<result property="orderNum" column="orderNum"/>
<association property="customer" javaType="Customer">
<id property="cust_id" column="cust_id"/>
<result property="cust_name" column="cust_name"/>
<result property="cust_phone" column="cust_phone"/>
<result property="cust_profession" column="cust_profession"/>
<result property="email" column="email"/>
</association>
</resultMap>
<select id="getAllOrder" resultMap="orderMap">
SELECT * from `order` as o LEFT JOIN `customer` as c ON o.orderCustId=c.cust_id;
</select>
方式二:级联封装(一般不适用)
<resultMap id="orderMap" type="com.ctbu.domain.Order">
<result property="orderId" column="orderId"/>
<result property="orderName" column="orderName"/>
<result property="orderNum" column="orderNum"/>
<result property="customer.cust_id" column="cust_id"/>
<result property="customer.cust_name" column="cust_name"/>
<result property="customer.cust_phone" column="cust_phone"/>
<result property="customer.cust_profession" column="cust_profession"/>
<result property="customer.email" column="email"/>
</resultMap>
<select id="getAllOrder" resultMap="orderMap">
SELECT * from `order` as o LEFT JOIN `customer` as c ON o.orderCustId=c.cust_id;
</select>
第五步:测试程序
@Test
public void test4(){
SqlSession session = MyUtils.openSession();
OrderMapper mapper = session.getMapper(OrderMapper.class);
List<Order> allOrder = mapper.getAllOrder();
for (Order order : allOrder) {
System.out.println(order);
}
session.close();
}
结果: