mybatis实现多对多

多对多需要建立中间表
human表
在这里插入图片描述
job表
在这里插入图片描述
中间映射表
在这里插入图片描述

查询全部的人对应的工作 
    SELECT human.*,job.*
    FROM human,job,humanjob
    WHERE humanjob.jobID=job.id
    and humanjob.humanID=human.id

在这里插入图片描述

我们以人为主体查询全部人所对应的多份工作
Human实体类

package com.lzm.pojo;

import java.util.List;

public class Human {
    private Integer id;

    private String name;
    
    private Job job;
    
    private List<Job> joblist;
    
	public List<Job> getJoblist() {
		return joblist;
	}

	public void setJoblist(List<Job> joblist) {
		this.joblist = joblist;
	}

	public Job getJob() {
		return job;
	}

	public void setJob(Job job) {
		this.job = job;
	}

	public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

	@Override
	public String toString() {
		return "Human{" +
				"id=" + id +
				", name='" + name + '\'' +
				", job=" + job +
				", joblist=" + joblist +
				'}';
	}

	public Human() {
	}

	public Human(Integer id, String name, Job job, List<Job> joblist) {
		this.id = id;
		this.name = name;
		this.job = job;
		this.joblist = joblist;
	}
}

Job实体类

package com.lzm.pojo;

public class Job {
    private Integer id;

    private String job;
    
    private Human human;

    @Override
	public String toString() {
		return "Job [id=" + id + ", job=" + job + ", human=" + human + "]";
	}

	public Human getHuman() {
		return human;
	}

	public void setHuman(Human human) {
		this.human = human;
	}

	public Integer getId() {
        return id;
    }

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

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job == null ? null : job.trim();
    }
}

humanMapper文件

  <resultMap id="BaseResultMap" type="com.lzm.pojo.Human" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <collection property="joblist" ofType="Job" >
        <id column="id1" property="id"  jdbcType="INTEGER" />
        <result column="job" property="job" jdbcType="VARCHAR" />
    </collection>
   </resultMap>


    <select id="selectAllHuamnJobByPrimaryKey" resultType="com.lzm.pojo.Human">
        SELECT human.*,job.*
        FROM human,job,humanjob
        WHERE humanjob.jobID=job.id
        and humanjob.humanID=human.id
    </select>

HumanMapper接口添加

List<Human> selectAllHuamnJobByPrimaryKey();
	//多对多 根据mapper文件的修改实现
	@RequestMapping(value="/test6.action",method=RequestMethod.GET,produces = "text/json;charset=UTF-8")
	@ResponseBody
	public String test6()
	{
		List<Human> human = humanMapper.selectAllHuamnJobByPrimaryKey();
		return  human.toString();
	}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值