mybatis多对多查询

java实体类代码:

package com.zx.mybatis.entity;

import java.util.List;

public class Student2 {
	private int sId;
	private String sName;
	private List<Course> cous;
	
	public Student2() {
	}
	public Student2(int sId, String sName, List<Course> cous) {
		super();
		this.sId = sId;
		this.sName = sName;
		this.cous = cous;
	}
	public int getsId() {
		return sId;
	}
	public void setsId(int sId) {
		this.sId = sId;
	}
	public String getsName() {
		return sName;
	}
	public void setsName(String sName) {
		this.sName = sName;
	}
	public List<Course> getCous() {
		return cous;
	}
	public void setCous(List<Course> cous) {
		this.cous = cous;
	}
	@Override
	public String toString() {
		return "Student2 [sId=" + sId + ", sName=" + sName + ", cous=" + cous + "]";
	}
}

package com.zx.mybatis.entity;

import java.util.List;

public class Course {
	private int cId;
	private String cName;
	private List<Student2> stus;
	
	public Course() {
	}
	public Course(int cId, String cName, List<Student2> stus) {
		super();
		this.cId = cId;
		this.cName = cName;
		this.stus = stus;
	}
	public int getcId() {
		return cId;
	}
	public void setcId(int cId) {
		this.cId = cId;
	}
	public String getcName() {
		return cName;
	}
	public void setcName(String cName) {
		this.cName = cName;
	}
	public List<Student2> getStus() {
		return stus;
	}
	public void setStus(List<Student2> stus) {
		this.stus = stus;
	}
	@Override
	public String toString() {
		return "Course [cId=" + cId + ", cName=" + cName + ", stus=" + stus + "]";
	}
}

dao接口代码:
package com.zx.mybatis.mapper;

import java.util.List;
import java.util.Map;

import com.zx.mybatis.entity.BanJi;
import com.zx.mybatis.entity.Course;
import com.zx.mybatis.entity.Student;
import com.zx.mybatis.entity.Student1;
import com.zx.mybatis.entity.Student2;

public interface StudentMapper {
	/**
	 * 获取所有学生和课程信息
	 * @return
	 */
	public List<Student2> selectSC();
	//TODO
	public List<Course> selectSC1();
}

mapper.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">
	<!-- <select id="selectSC" resultMap="stu2">
		select s.id sid,s.user_name,c.id cid, c.course_name from student s, course c, mid m where s.id = m.sid and c.id = m.cid
	</select>
	<resultMap type="Student2" id="stu2">
		<id column="sid" property="sId"/>
		<result column="user_name" property="sName"/>
		<collection property="cous" ofType="Course">
			<id column="cid" property="cId"/>
			<result column="course_name" property="cName"/>
		</collection>
	</resultMap> -->
	<select id="selectSC" resultMap="stu2">
		select s.id sid,s.user_name,c.id cid, c.course_name from student s, course c, mid m where s.id = m.sid and c.id = m.cid
	</select>
	<resultMap type="Course" id="stu2">
		<id column="sid" property="sId"/>
		<result column="user_name" property="sName"/>
		<collection property="cous" ofType="Course">
			<id column="cid" property="cId"/>
			<result column="course_name" property="cName"/>
		</collection>
	</resultMap>
</mapper>

java测试代码:

package com.zx.mybatis.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import com.zx.mybatis.entity.BanJi;
import com.zx.mybatis.entity.LeiMu;
import com.zx.mybatis.entity.LeiMu1;
import com.zx.mybatis.entity.Student1;
import com.zx.mybatis.entity.Student2;
import com.zx.mybatis.mapper.LeiMuMapper;
import com.zx.mybatis.mapper.StudentMapper;
import com.zx.mybatis.util.MybatisUtil;

public class Test2 {
	
	private static SqlSession sqlSession;
	
	static {
		sqlSession = MybatisUtil.getSqlSession();
	}
	@Test
	public void Test5() {
		StudentMapper sm = sqlSession.getMapper(StudentMapper.class);
		List<Student2> stus = sm.selectSC();
		for(Student2 s : stus) {
			System.out.println(s);
		}
		sqlSession.close();
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值