要實現復雜查詢,可以利用MyBatis的動態SQL來動態構建SQL語句。下面是一個簡單的示例,演示了如何使用動態SQL進行復雜查詢:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="email != null">
AND email = #{email}
</if>
</where>
</select>
List<User> selectUsers(Map<String, Object> params);
Map<String, Object> params = new HashMap<>();
params.put("username", "test");
List<User> users = userDao.selectUsers(params);
通過這種方式,可以根據傳入的查詢條件動態構建SQL語句,實現復雜查詢功能。同時,MyBatis還提供了其他的動態SQL標簽,如foreach、set等,可以進一步擴展動態SQL的功能。