【百占百胜】-三创比赛,查询个人预约信息,实现一对一两次关联,预约与座位关联,座位与自习室关联

大家好,我是被白菜拱的猪。
我们知道预约表存的是seatId,但是我们想要把座位信息(比如几行几列查询出来),以及自习室信息(座位表中仅仅有一个roomId)查询出来,这时候我们就要用到mybatis的一对一映射查询,注意这里不是一对多,只不过是一对一,用了两次。

首先在各个bean里面添加对象,预约bean中添加Seat属性,seat表中添加Room属性。重写set,get,toString方法

闲话不多说,直接上代码。

OrderMapper.xml(预约表)

	<resultMap type="com.bzbs.bean.Order" id="orderInfo">
		<result column="orderId" property="orderId"/>
		<result column="personId" property="personId"/>
		<result column="startTime" property="startTime"/>
		<result column="endTime" property="endTime"/>
		<result column="status" property="status"/>

		<association property="seat" column="seatId" javaType="com.bzbs.bean.Seat" 
			select="com.bzbs.mapper.SeatMapper.getSeatById" />
	</resultMap>
	

	<select id="queryMyOrder" resultMap="orderInfo" parameterType="int">
		select * from
		zz_order
		where
		 	personId=#{personId}
	</select>

SeatMapper.xml(座位表)

<resultMap type="com.bzbs.bean.Seat" id="seatInfo">
		<result column="seatId" property="seatId"/>
		<result column="row" property="row"/>
		<result column="col" property="col"/>

		<association property="room" column="roomId" javaType="com.bzbs.bean.Room" 
			select="com.bzbs.mapper.RoomMapper.queryRoomById" />
	</resultMap>
	
	
	<!-- 查询个人预约信息  映射查询 -->
	<select id="getSeatById" 
	resultMap="seatInfo">
	select
		*
	from zz_seat
		<where>
			<if test=" _parameter != null  and _parameter!=''">
				and seatId = #{seatId}
			</if>
		</where>
	</select>

RoomMapper.xml(自习室表)

<select id="queryRoomById" resultType="room">
		select * from
		zz_room
		where
		 	roomId=#{roomId}
	</select>

这里mapper接口实现类省略不在叙述。

最后查询的结果为

[Order [orderId=1, personId=2, seatId=0, startTime=Thu Apr 16 11:32:31 CST 2020, endTime=Thu Apr 16 11:55:27 CST 2020, status=有效, seat=Seat [seatId=18, row=3, col=6, status=无座, roomId=0, room=Room [roomId=3, roomName=东区图书馆304, rows=8, cols=6, address=长春理工大学东校区图书馆三楼304]]], Order [orderId=3, personId=2, seatId=0, startTime=Thu Apr 16 11:35:07 CST 2020, endTime=Thu Apr 16 11:35:10 CST 2020, status=有效, seat=Seat [seatId=12, row=2, col=6, status=无座, roomId=0, room=Room [roomId=3, roomName=东区图书馆304, rows=8, cols=6, address=长春理工大学东校区图书馆三楼304]]], Order [orderId=7, personId=2, seatId=0, startTime=Thu Apr 16 13:23:19 CST 2020, endTime=Thu Apr 16 13:23:24 CST 2020, status=有效, seat=Seat [seatId=17, row=3, col=5, status=无座, roomId=0, room=Room [roomId=3, roomName=东区图书馆304, rows=8, cols=6, address=长春理工大学东校区图书馆三楼304]]], Order [orderId=8, personId=2, seatId=0, startTime=Thu Apr 16 13:32:49 CST 2020, endTime=Thu Apr 16 13:32:51 CST 2020, status=有效, seat=Seat [seatId=11, row=2, col=5, status=无座, roomId=0, room=Room [roomId=3, roomName=东区图书馆304, rows=8, cols=6, address=长春理工大学东校区图书馆三楼304]]], Order [orderId=9, personId=2, seatId=0, startTime=Thu Apr 16 13:36:52 CST 2020, endTime=Thu Apr 16 13:36:55 CST 2020, status=有效, seat=Seat [seatId=10, row=2, col=4, status=无座, roomId=0, room=Room [roomId=3, roomName=东区图书馆304, rows=8, cols=6, address=长春理工大学东校区图书馆三楼304]]], Order [orderId=10, personId=2, seatId=0, startTime=Thu Apr 16 13:38:33 CST 2020, endTime=Thu Apr 16 13:38:35 CST 2020, status=有效, seat=Seat [seatId=16, row=3, col=4, status=无座, roomId=0, room=Room [roomId=3, roomName=东区图书馆304, rows=8, cols=6, address=长春理工大学东校区图书馆三楼304]]]]

难是不难,主要要疏通好逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值