MyBatis的多表操作

本文详细介绍了在MyBatis中如何进行一对一、一对多和多对多的查询操作。通过实例展示了对应的SQL语句、实体类设计、Mapper接口及XML配置,并提供了测试结果,总结了不同查询配置方式。
摘要由CSDN通过智能技术生成


一、一对一查询

用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户
需求:查询一个订单,与此同时查询出该订单所属的用户
在数据库准备好俩张表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 一对一查询的语句

对应的sql语句:select * from orders o,user u where o.uid=u.id;

查询结果为:
在这里插入图片描述

2. 代码实现

  1. 创建Order和User实体:
public class Order {
   
private int id;
private Date ordertime;
private double total;
//代表当前订单从属于哪一个客户
private User user; }
public class User {
   
private int id;
private String username;
private String password;
private Date birthday; }

将俩个实体类get、set、toString一下。

  1. 创建OrderMapper接口
package com.itheima.mapper;

import com.itheima.domain.Order;

import java.util.List;

public interface OrderMapper {
   
    public List<Order> findAll();
}

  1. 配置OrderMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.OrderMapper">

    <resultMap id="orderMap" type="order">
<!--    手动指定字段与实体属性的映射关系
        column:数据表的字段名称
        property:实体属性名称
  -->
        <id column="oid" property="id"></id>
        <result column="ordertime" property="ordertime"></result>
        <result column="total" property="total"></result>
        
        <!-- 可以使用assocition代替 -->
<!--    <result column="uid" property="user.id"></result>
        <result column="username" property="user.username"></result>
        <result column="password" property="user.password"></result>
        <result column="birthday" property="user.birthday"></result>-->

        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力变好的小贤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值