您的位置:首页 > 其它

mybatis映射配置

2016-05-11 00:00 253 查看
摘要: mybatis 一对一 一对多 多对多

关键字 一对多 用collection 一对一 用association

--------------------一对一关系-------------------------------------

<mapper namespace="cn.gdpe.bean.Students">
<resultMap type="student" id="studentMap">
<id property="sid" column="sid"/>
<result property="sname" column="sname"/>
<result property="card_id" column="card_id"/>
<association property="card" resultMap="cn.gdpe.domain.Card.carMap"></association>
</resultMap>

<select id="getById" parameterType="int" resultMap="studentMap">
select s.card_id,s.sid,s.sname,c.cid,c.cnum
from student s inner join card c
on s.card_id=c.cid and s.sid=#{sid}
</select>
<select id="getByNum" parameterType="int" resultMap="studentMap">
select s.card_id,s.sid,s.sname
from student s inner join card c
on s.card_id=c.cid and c.cnum=#{cnum}
</select>
</mapper>

<mapper namespace="cn.gdpe.domain.Card">
<resultMap type="card" id="carMap">
<id property="cid" column="cid"/>
<result property="cnum" column="cnum"/>
</resultMap>
</mapper>

------------------------一对多---------------------------------

<mapper namespace="gradeNamespace">

<resultMap type="cn.gdpe.Grade" id="gradeMap">
<id property="id" column="gid"/>
<result property="name" column="gname"/>
</resultMap>
<!-- 查询是哪个学科的 -->
<select id="findByName" parameterType="string" resultMap="gradeMap">
select g.gname
from students s inner join grades g
on s.sgid = g.gid
and s.sname = #{sname}
</select>
</mapper>

<mapper namespace="studentNamespace">

<resultMap type="cn.gdpe.Student" id="studentMap">
<id property="id" column="sid"/>
<result property="name" column="sname"/>
</resultMap>

<!-- 查询有哪些学生信息 -->
<select id="findAllByName" parameterType="string" resultMap="studentMap">
select s.sid,s.sname
from students s inner join grades g
on s.sgid = g.gid
and g.gname = #{gname}
</select>

</mapper>

---------------------------------多对多需要建三个表------------------------------

<mapper namespace="studentNamespace">

<resultMap type="cn.gdpe.Student" id="studentMap">
<id property="id" column="sid"/>
<result property="name" column="sname"/>
</resultMap>

<select id="findAllByCourseName" parameterType="string" resultMap="studentMap">
select s.sname
from students s inner join middles m
on s.sid = m.msid
inner join courses c
on m.mcid = c.cid
and c.cname = #{cname}
</select>

</mapper>

<mapper namespace="courseNamespace">

<resultMap type="cn.gdpe.Course" id="courseMap">
<id property="id" column="cid"/>
<result property="name" column="cname"/>
</resultMap>
<!-- 查询选学了哪些课程 -->
<select id="findAllByName" parameterType="string" resultMap="courseMap">
select c.cid,c.cname
from students s inner join middles m
on s.sid = m.msid
inner join courses c
on m.mcid = c.cid
and s.sname = #{sname}
</select>

</mapper>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: