Mybatis多对一的处理
来源:互联网 发布:手机淘宝模拟试衣服 编辑:程序博客网 时间:2024/05/18 01:29
多对一关系
下面设计了两张表,根据学生来查询
表的设计
利用Navicat for mysql建表,然后在查看菜单点击ER图表(概念模型) 如下:
设计好的表ER图表
上述表 student tid设置外键参考teacher的id,所以建好表后两者都为空要先添加teacher的数据。
多个学生对于一个老师
实体类
Teacher
public class Teacher { private int id; private String name; //省略set/get方法 @Override public String toString() { return "Teacher [id=" + id + ", name=" + name + "]"; }}
Student
public class Student { private int id; private String name; private Teacher teacher; //省略set/get方法 @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", teacher=" + teacher + "]"; }}
编写映射文件
按结果嵌套处理
<mapper namespace="cn.sxt.entity.student.mapper"> <!-- 多对一处理有两种方式 1 .按结果嵌套处理 2 .按查询嵌套处理 --> <!--按结果嵌套处理 --> <select id="getStudents" resultMap="StudentTeacher"> select s.id sid,s.name sname,s.tid stid ,t.id tid,t.name tname from student s,teacher t where s.tid=t.id </select> <resultMap type="Student" id="StudentTeacher"> <id column="sid" property ="id"></id> <result column="sname" property="name"></result> <!-- 关联对象 property 关联对象在Student实体类的属性 javaType property对于属性的类型--> <association property="teacher" javaType="Teacher"> <id column="tid" property="id"></id> <result column="tname" property="name"></result> </association> </resultMap></mapper>
按查询结果嵌套处理
<!--按查询嵌套处理 --> <select id="getStudents" resultMap="StudentTeacher"> select * from student </select> <resultMap type="Student" id="StudentTeacher"> <association property="teacher" column="tid" javaType="Teacher" select="cn.sxt.entity.teacher.mapper.getTeacher"></association> </resultMap>
teacher.mapper.xml中
<mapper namespace="cn.sxt.entity.teacher.mapper"> <select id="getTeacher" resultType="Teacher"> select * from teacher where id=#{id} </select></mapper>
测试
public static void main(String[] args) throws IOException { StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.getAll(); for(Student stu:list){ System.out.println("student name"+stu.getName()+" student's teacher name="+stu.getTeacher().getName()); } }
阅读全文
0 0
- Mybatis多对一的处理
- mybatis 多对一,xml 文件的处理 学习总结
- Mybatis 一对一,一对多,多对一,多对多 的处理
- 处理 Mybatis 中一对多、多对一、多对多映射的黑魔法
- Mybatis多对一
- myBatis多对一
- Mybatis的多对一,一对多
- mybatis 多对一的理解
- mybatis对数字的处理
- Mybatis多对多处理
- mybatis 多对多 处理
- mybatis 多对多 处理
- mybatis多对多处理
- mybatis 多对多 处理
- mybatis多对多处理
- mybatis 多对多 处理
- mybatis 多对多 处理
- mybatis多对一查询
- Linux运维学习笔记之五:Linux目录结构
- Java模版引擎之Freemarker篇
- hadoop系列三:mapreduce的使用(一)
- VC++6.0编辑框显示行号
- laravel 自定义的控制台命令
- Mybatis多对一的处理
- View的滑动的基本知识
- 功能测试工具QTP & 性能测试工具LoadRunner使用总结
- SQLServer 创建dtsx包更新统计信息(示例)
- 现代C++新四大名著及C++学习杂谈
- CSS--响应式布局
- T626code学习笔记之单例模式
- Python_网络爬虫(新浪新闻抓取)
- linux下c++如何输入不回显且输入不用回车