mybatis处理一对一查询
2024-10-20 20:52:51
有班级表,老师表,要求给定班级id查出班级信息和班级对应的老师信息
1、使用嵌套结果方式
sql语句:
<select id="findClasses" parameterType="int" resultMap="findClassesMap">
select c.*,t.t_name from classes c,teacher t where c.t_id = t.t_id and c.c_id =#{id} ;
</select>
<resultMap type="Classes" id="findClassesMap">
<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>
2、使用嵌套查询方式
select * from class where c_id = #{id}
select * from teacher where t_id = #{teacher_id} //使用上一个查询的结果teacher_id
<select id="findClasses2" parameterType="int" resultMap="findClasses2Map">
select * from classes where c_id=#{id}
</select>
<resultMap type="Classes" id="findClasses2Map">
<id property="id" column="c_id"/>
<result property="name" column="c_name"/>
<association property="teacher" select="findTeacher" column="t_id">
</association>
</resultMap>
<select id="findTeacher" parameterType="int" resultType="Teacher">
select t_id id,t_name name from teacher where t_id = #{t_id}
</select>
在association节点中配置两个属性column指上次查询结果哪个字段作为下一次查询的参数条件 select指对应的查询
最新文章
- IT基础架构规划方案一(网络系统规划)
- nginx :413 Request Entity Too Large
- json和字符串转换
- 如何签名apk,并让baidu地图正常显示
- Codeforces 603A Alternative Thinking
- poj 1056 IMMEDIATE DECODABILITY(KMP)
- HashMap源码阅读
- Pandas 基础(17) - to_datetime
- Postgresql-模糊匹配大杀器
- hdu-5687(字典树)
- 最大子数组(I, II, III,IV,V)和最大子数组乘积 (动态规划)
- 梯度下降(gradient descent)算法简介
- Pycharm自动添加文件头
- sharpkeys键盘按键重映射
- Safari导入书签
- C#中ASCII码与字符串的互换
- Grails开发环境的高速搭建
- Spring源码分析之——导入spring-framework源代码到Eclipse
- webgl学习笔记四-动画
- 一个简单的异常/条件重试类(C#)