mybatis映射关系——多对多映射
来源:互联网 发布:淘宝店经营类目怎么改 编辑:程序博客网 时间:2024/06/05 22:33
多对多映射就是两个实体之间是多对多的关系,例如老师和学生之间,可能是一个老师对应多个学生,同理一个学生可能对多个老师,那么怎么使用Mybatis程序怎么写出多对多关系???
1.先在entity包中新建两个实体类,一个是学生类,另一个就是教师类,以学生类为主体,完成多表查询操作:
student类
package com.baidu.lmj.entity;public class TStudent { private int id; private String username; private int cid; private TTeachter tea; 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 int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } public TTeachter getTea() { return tea; } public void setTea(TTeachter tea) { this.tea = tea; }}
teachter类
package com.baidu.lmj.entity;import java.util.List;public class TTeachter { private int id; private String tname; private List<TStudent> list; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } public List<TStudent> getList() { return list; } public void setList(List<TStudent> list) { this.list = list; }}
2.在dao包中分别建一个TTeachter.java和TStudent.java,并且定义一些常用的方法,方法如下所示:
TTeachter.java
package com.baidu.lmj.dao;import java.util.List;import com.baidu.lmj.entity.TTeachter;public interface TTeachterdao { public List<TTeachter> SelectAllTTeachter(); public List<TTeachter> SelectAllTTeachter1();}
TStudent.java
package com.baidu.lmj.dao;import java.util.List;public interface TStudent { public List<TStudent> SelectAllStudent(); public List<TStudent> SelectAllStudent1();}
3.在entity包中建立TStudent.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.baidu.lmj.dao.TStudentDao"> <resultMap type="com.baidu.lmj.entity.TStudent" id="map01"> <id column="sid" property="id"/> <result column="username" property="username"/> <collection property="tea" ofType="com.baidu.lmj.entity.TTeachter"> <id column="tid" property="id"/> <result column="tname" property="tname"/> </collection> </resultMap> <select id="SelectAllStudent" resultMap="map01"> select a.id AS sid,username,c.id AS tid,c.tname from t_student a INNER JOIN t_s_t b ON a.id=b.sid INNER JOIN t_teacher c ON b.tid=c.id </select> <resultMap type="com.baidu.lmj.entity.TStudent" id="map02"> <id column="id" property="id"/> <result column="username" property="username"/> <collection property="tea" column="id" ofType="com.baidu.lmj.entity.TTeachter" select="id001"> <id column="id" property="id"/> <result column="tname" property="tname"/> </collection> </resultMap> <select id="SelectAllStudent1" resultMap="map02"> select * FROM t_student </select> <select id="id001" parameterType="int" resultType="com.baidu.lmj.entity.TTeachter"> select * FROM t_s_t a INNER JOIN t_teacher b ON a.tid=b.id WHERE a.sid=1 </select></mapper>
4.在biz包中新建TStudentBiz.java类,进行业务层构建
package com.baidu.lmj.biz;import java.io.IOException;import java.util.List;import org.apache.ibatis.session.SqlSession;import com.baidu.lmj.dao.TStudentDao;import com.baidu.lmj.entity.TStudent;import com.baidu.lmj.util.SessionFactory;public class TStudentBiz { TStudentDao dao; public List<TStudent> getAllTStudent(){ List<TStudent> list=null; try { SqlSession session=SessionFactory.getSession(); dao=session.getMapper(TStudentDao.class); list=dao.SelectAllStudent(); SessionFactory.ClosedSession(session); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }public List<TStudent> getAllTStudent1(){ List<TStudent> list=null; try { SqlSession session=SessionFactory.getSession(); dao=session.getMapper(TStudentDao.class); list=dao.SelectAllStudent1(); SessionFactory.ClosedSession(session); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }}
5.在Main.java类里面进行测试并运行,测试代码如下所示:
package com.baidu.lmj.Main;import java.util.List;import com.baidu.lmj.biz.TStudentBiz;import com.baidu.lmj.entity.TStudent;import com.baidu.lmj.entity.TTeachter;public class Main1 { public static void main(String[] args) { // TODO Auto-generated method stub// TStudentBiz biz=new TStudentBiz();// // List<TStudent> list=biz.getAllTStudent();// // for(TStudent stu:list)// {// System.out.println("查询的学生是"+stu.getUsername());// System.out.println("他的教师是************************");// // for(TTeachter te:stu.getTea())// {// System.out.println(te.getTname());// }// System.out.println("****************结束********************");// } TStudentBiz biz=new TStudentBiz(); List<TStudent> list=biz.getAllTStudent1(); for(TStudent stu:list) { System.out.println("查询的学生是"+stu.getUsername()); System.out.println("他的教师是************************"); for(TTeachter te:stu.getTea()) { System.out.println(te.getTname()); } System.out.println("****************结束********************"); } }}
阅读全文
0 0
- mybatis映射关系——多对多映射
- Mybatis映射关系-多对一映射
- mybatis 多对多映射关系
- MyBatis多对多关系映射
- mybatis多对多关系映射
- Mybatis 多对多关系映射
- MyBatis 多对多关系映射
- MyBatis对象关系映射--- 多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- 使用maven创建web项目
- 几个国内可用的 yum 源
- SpringCloud.Eureka
- 计算机组成原理-微程序和微指令
- 分类之性能评估指标
- mybatis映射关系——多对多映射
- jQuery实现全选和全不选
- [乐意黎转载]Apache修改最大并发数
- 冒泡排序、直接插入排序、选择插入排序
- echarts 数据重新加载,原数据依然存在图表上
- 认真的写一个单例模式
- python3版本爬虫系列之模拟登陆CSDN
- 物联网——Zigbee协议简介
- Elasticsearch笔记三之版本控制和插件