// 动态SQL示例 public ListgetUserListByCondition(String userName, Integer age, String email) { String sql = "SELECT * FROM user WHERE 1=1"; StringBuilder conditionBuilder = new StringBuilder(); if (StringUtils.isNotBlank(userName)) { conditionBuilder.append(" AND user_name = #{userName}"); } if (age != null) { conditionBuilder.append(" AND age = #{age}"); } if (StringUtils.isNotBlank(email)) { conditionBuilder.append(" AND email = #{email}"); } sql += conditionBuilder.toString(); return sqlSession.selectList("getUserListByCondition", sql); } // 结果映射示例 public List getOrderListWithDetail() { return sqlSession.selectList("getOrderListWithDetail"); } public interface OrderMapper { @Select("SELECT o.id, o.order_no, o.total_price, p.product_name " + "FROM order o " + "JOIN product p ON o.product_id = p.id") @Results(id = "orderResultMap", value = { @Result(property = "id", column = "id"), @Result(property = "orderNo", column = "order_no"), @Result(property = "totalPrice", column = "total_price"), @Result(property = "productName", column = "product_name") }) List getOrderListWithDetail(); }
通过上述代码示例,我们可以使用MyBatis的动态SQL功能轻松地构建灵活的查询语句。同时,通过结果映射技巧,我们可以将数据库表的字段映射到Java对象的属性上,简化数据操作的过程。