MyBatis是一个优秀的持久层框架,对于复杂查询,MyBatis提供了多种技巧来实现。下面是一些MyBatis复杂查询的技巧和实例:
<select id="selectUsers" resultType="User"> SELECT * FROM users <where> <if test="id != null"> AND id = #{id} </if> <if test="name != null"> AND name = #{name} </if> </where> </select> <select id="selectUserWithOrders" resultType="User"> SELECT * FROM users WHERE id = #{id} <select id="selectOrdersByUserId" resultType="Order"> SELECT * FROM orders WHERE user_id = #{id} </select> </select> <select id="selectUserWithOrders" resultMap="userWithOrdersMap"> SELECT u.id, u.name, o.id as order_id, o.product FROM users u LEFT JOIN orders o ON u.id = o.user_id </select> RowBounds rowBounds = new RowBounds(offset, limit); List<User> users = session.selectList("selectUsers", null, rowBounds); @CacheNamespace public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{id}") User selectUserById(int id); } 通过以上技巧和实例,可以更灵活地使用MyBatis进行复杂查询,提高开发效率和性能。