码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis学习笔记-一对一关联

时间:2014-09-29 18:03:51      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:mybatis

Teacher.java实体类 。 对应数据库teacher表

public class Teacher {
	private int id;
	private String name;
	//...
}


Classes.java实体类 。 对应数据库class表

public class Classes {
	private int id;
	private String name;
	private Teacher teacher;
	//...
}

bubuko.com,布布扣

bubuko.com,布布扣

第一种方式

<!-- 
方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集
         封装联表查询的数据(去除重复的数据)
select * from class c, teacher t where c.teacher_id=t.t_id and  c.c_id=1
-->
<select id="getClass" parameterType="int" resultMap="ClassResultMap">
	select * from class c, teacher t where c.teacher_id=t.t_id and  c.c_id=#{id}
</select>
<resultMap type="com.mybatis.test03.Classes" id="ClassResultMap">
	<id property="id" column="c_id"/>
	<result property="name" column="c_name"/>
	<association property="teacher" javaType="com.mybatis.test03.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="com.mybatis.test03.Classes" id="ClassResultMap2">
		<id property="id" column="c_id" />
		<result property="name" column="c_name" />
		<association property="teacher" column="teacher_id"
			select="getTeacher"><!-- 映射到后面的getTeacher -->
		</association>
	</resultMap>
	<select id="getTeacher" parameterType="int" resultType="com.mybatis.test03.Teacher">
		SELECT t_id id, t_name name FROM teacher WHERE t_id=#{id}
	</select>


association 用于一对一的关联查询

property 对象属性的名称

javaType 对象属性的类型

column 所对应的外键字段的名称

select 使用另一个查询封装的结果


本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1559266

Mybatis学习笔记-一对一关联

标签:mybatis

原文地址:http://shamrock.blog.51cto.com/2079212/1559266

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!