mybatis由浅入深day02_2一对一查询_2.2方法一:resultType

一对一查询

  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 测试代码

原文地址:https://www.cnblogs.com/justdoitba/p/8051667.html