MyBatis是一個基于Java的持久層框架,可以通過XML或注解方式進行SQL映射,支持關聯查詢和嵌套查詢。下面是一些關聯查詢和嵌套查詢的技巧:
<association>
或<collection>
標簽來進行關聯查詢。<association>
用于一對一關聯查詢,<collection>
用于一對多關聯查詢。<!-- 一對一關聯查詢 -->
<select id="selectOrderWithUser" resultType="com.example.Order">
select * from orders o
left join users u on o.user_id = u.id
</select>
<!-- 一對多關聯查詢 -->
<select id="selectUserWithOrders" resultType="com.example.User">
select * from users u
left join orders o on u.id = o.user_id
</select>
<select>
標簽中使用select
屬性引用另一個SQL查詢。<select id="selectUserWithOrders" resultType="com.example.User">
select * from users
where id = #{userId}
and id in (select user_id from orders where status = 'completed')
</select>
<resultMap>
標簽自定義結果映射,可以實現更復雜的關聯查詢。<resultMap id="userMap" type="com.example.User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<collection property="orders" ofType="com.example.Order">
<id column="order_id" property="id"/>
<result column="order_name" property="name"/>
</collection>
</resultMap>
通過以上技巧,可以在MyBatis中實現靈活、高效的關聯查詢和嵌套查詢。