MyBatis-一对一关联表查询 -05
来源:互联网 发布:gps数据导入,导出 编辑:程序博客网 时间:2024/06/05 18:47
一、一对一的关联表查询
假设一个老师对应一个班级的情况
二、两种实现子查询的方式班级表
CREATE TABLE class(c_id INT PRIMARY KEY AUTO_INCREMENT, c_name VARCHAR(20), teacher_id INT);教师表
CREATE TABLE teacher(t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20));班级类
package com.weixuan.mybatis.bean;public class Classes {private int id;private String name;private Teacher teacher;@Overridepublic String toString() {return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher+ "]";}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher = teacher;}public Classes(int id, String name, Teacher teacher) {super();this.id = id;this.name = name;this.teacher = teacher;}public Classes() {super();}}教师类
package com.weixuan.mybatis.bean;public class Teacher {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Teacher [id=" + id + ", name=" + name + "]";}public Teacher(int id, String name) {super();this.id = id;this.name = name;}public Teacher() {super();}}
三、标签总结方式一
<!-- 方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集 封装联表查询的数据(去除重复的数据) --><select id="getClass" parameterType="int" resultMap="GetClassOne2One">select *from class c, teacher t where c.teacher_id=t.t_id and c.c_id= #{id}</select><resultMap type="Classes" id="GetClassOne2One"><id property="id" column="c_id" /><result property="name" column="c_name" /><association property="teacher" javaType="Teacher"><id property="id" column="t_id" /><result property="name" column="t_name" /></association></resultMap>方式二
<!-- 方式二:嵌套查询:通过执行另外一个SQL映射语句来返回预期的复杂类型 SELECT * FROM class WHERE c_id=1; SELECT * FROM teacher WHERE t_id=1 //1 是上一个查询得到的teacher_id的值 --><select id="getClass2" parameterType="int" resultMap="ClassResultMap2">select * from class where c_id=#{id}</select><resultMap type="_Classes" id="ClassResultMap2"><id property="id" column="c_id" /><result property="name" column="c_name" /><association property="teacher" column="teacher_id"select="getTeacher"></association></resultMap><select id="getTeacher" parameterType="int" resultType="_Teacher">SELECT t_id id, t_name name FROM teacher WHERE t_id=#{id}</select>
association ----> 用于一对一的关联查询
property ----> 对象属性的名称
javaType ----> 对象属性的类型
column ----> 所对应的外键的字段名称或者实体类成员在数据库表中的对应字段名
select ----> 使用另一个查询封装的结果
0 0
- MyBatis-一对一关联表查询 -05
- Mybatis---一对一关联表查询
- MyBatis一对一关联表查询
- MyBatis关联查询(一对一)
- mybatis一对一关联查询
- Mybatis一对一关联查询
- Mybatis一对一关联查询
- Mybatis一对一关联查询
- mybatis 实现一对一关联表查询
- Mybatis入门--关联查询一对一
- MyBatis中一对一关联查询
- MyBatis之一对一关联查询
- Mybatis实现关联表查询(一对一关联)
- 【SSM-MyBatis框架】关联查询--一对一查询
- Mybatis学习总结之一对一关联表查询
- mybatis学习笔记(九)一对一关联表查询
- Mybatis一对一(多对一)关联表查询
- MyBatis一对一以及一对多关联表查询
- GNU Readline 库及编程简介
- 那些不能错过的Xcode插件
- UIView
- 【JSP】关于The JSP specification requires that an attribute name is preceded by whitespace
- 还原备份文件
- MyBatis-一对一关联表查询 -05
- 123
- java 中用IO存储学生的学号和密码 实行注册和登录功能
- VC++ 根据关键字或者部分文件名查找文件
- 解决Android SDK Manager更新、下载速度慢
- C/C++内存管理详解 堆 栈
- 工厂模式与IOC模式对比思考
- 查找所有课程成绩90分以上的学生
- KMP代码-总结