mybatis:多表查询级联查询

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 ;
发布了53 篇原创文章 · 获赞 0 · 访问量 4145

猜你喜欢

转载自blog.csdn.net/qq_36453423/article/details/103604632