2 一对一查询
2.1 需求(查询所有订单信息,关联查询创建订单的用户信息)
查询所有订单信息,关联查询创建订单的用户信息
注意:因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用户信息为一对一查询。如果从用户信息出发查询用户下的订单信息则为一对多查询,因为一个用户可以下多个订单。
2.2 方法一:resultType
使用resultType,定义订单信息po类,此po类中包括了订单信息和用户信息:
2.2.1 sql语句
确定查询的主表:订单表
确定查询的关联表:用户表
关联查询使用内链接?还是外链接?
由于orders表中有一个外键(user_id),通过外键关联查询用户表只能查询出一条记录,可以使用内链接。
SELECT orders.*, USER.username, USER.sex, USER.address FROM orders, USER WHERE orders.user_id = user.id
2.2.2 创建pojo
将上边sql查询的结果映射到pojo中,pojo中必须包括所有查询列名(字段)。
原始的Orders.java不能映射全部字段,需要新创建的pojo。
创建一个pojo继承包括查询字段较多的po类。
原始的Orders.java
OrdersCustom.java
2.2.3 mapper.xml
2.2.4 mapper.java
2.2.5 测试代码
最能让人感到快乐的事,莫过于经过一番努力后,所有东西正慢慢变成你想要的样子!