大家好,我是被白菜拱的猪。
我们知道预约表存的是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]]]]
难是不难,主要要疏通好逻辑。