Mybatis多表查询:一对多查询

创建两个实体类

package domain;

import java.util.Date;
import java.util.List;

public class UserBir {

    int id;
    String username;
    String password;
    Date birthday;

    List<OrderInfo> orderInfoList;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public List<OrderInfo> getOrderInfoList() {
        return orderInfoList;
    }

    public void setOrderInfoList(List<OrderInfo> orderInfoList) {
        this.orderInfoList = orderInfoList;
    }

    @Override
    public String toString() {
        return "UserBir{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", birthday=" + birthday +
                ", orderInfoList=" + orderInfoList +
                '}';
    }
}

package domain;

import java.util.Date;

public class OrderInfo {

    int id;
    int ordertime;
    double total;
    int uid;

    UserBir userBir;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getOrdertime() {
        return ordertime;
    }

    public void setOrdertime(int ordertime) {
        this.ordertime = ordertime;
    }

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public UserBir getUserBir() {
        return userBir;
    }

    public void setUserBir(UserBir userBir) {
        this.userBir = userBir;
    }



    @Override
    public String toString() {
        return "OrderInfo{" +
                "id=" + id +
                ", ordertime=" + ordertime +
                ", total=" + total +
                ", uid=" + uid +
                '}';
    }
}


配置映射文件(多表查询主要就是这个映射文件的配置)

<?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="mapper.UserMapper">

    <resultMap id="res" type="domain.UserBir">
        <result property="id" column="id"></result>
        <result property="username" column="username"></result>
        <result property="password" column="password"></result>
        <result property="birthday" column="birthday"></result>
        <!--        注意这里是ofType,不是javaType,对应的是集合中的类型-->
        <collection property="orderInfoList" ofType="domain.OrderInfo">
            <result property="id" column="id"></result>
            <result property="ordertime" column="ordertime"></result>
            <result property="total" column="total"></result>
            <result property="uid" column="uid"></result>
        </collection>
    </resultMap>

    <!--一对多查询-->
    <select id="findAll" resultMap="res">
        select * from UserBir u,OrderInfo o where u.id=o.uid and u.id=1
    </select>

</mapper>
posted @ 2021-02-24 12:08  西红柿里没有番茄  阅读(69)  评论(0编辑  收藏  举报