mybatis多表查询
※利用Set类,将scores类封装进student类,进行级联查询!查询出来还是student对象,对象里含有一个HashSet<Scores>用来存放scores对象。
※resultMap高级映射。<association>来从数据库返回值在里面编写一对多的配置。
1.准备两张mysql的数据库表t_student、t_scores
2.创建对应的entity(pojo\bean)类
此处略,根据数据库自己建立
3.Mapper接口添加一个方法
4.对应的映射文件的配置文件xml
<resultMap id="studentScoresMap" type="student">
<id property="stuID" column="stuID"/>
<result property="name" column="name" />
<result property="birthday" column="birthday" />
<result property="sex" column="sex" />
<association property="scoresSet" javaType="Scores">
<result property="id" column="id"/>
<result property="math" column="math"/>
</association>
</resultMap>
<!-- 查询 -->
<select id="selectStudentByIdWithScores" parameterType="string"
resultMap="studentScoresMap" >
select
<include refid="all"></include>,id,math
from t_student inner join t_scores
on t_student.stuID=t_scores.stuID
where t_student.stuID = #{stuID}
</select>
5.Test类测试,略~~~
left.join只取得一条数据
select
product.id, uid, u_name, u_sex, u_credit, name, category, origin_price, current_price, quality, place,
telephone, delivery, description, edit_time, count, lat, lon ,picture.id pic_id,pid,picurl
from product
left join
(select MAX(picture.id) as id,pid,picurl from picture group by pid) picture
on product.id=picture.pid
where
1=1
limit 0,20 ;