<select id="findPostsBetweenRange" parameterType="java.util.Map" resultMap="PostResultMap"> SELECT p.id as post_id, p.title as post_title, p.body as post_body, p.date_created as post_date_created, p.comment_count as post_comment_count, p.hit_count as post_hit_count, u.id as user_id, u.username as user_username, u.avatar_location as user_avatar_location, c.name as category_name, c.display_name as category_display_name FROM T_POST p LEFT JOIN T_USER u ON p.user_id = u.id LEFT JOIN T_CATEGORY c ON p.category_id = c.id WHERE p.date_created BETWEEN ${startDateStr} AND ${endDateStr} ORDER BY p.date_created DESC; </select>
parameterType用Map的全包名java.util.Map,取map中的值時不能用#{},要用${}.因爲#{} 會自動加上"" 這樣是獲取不到value值的。
還有:在springboot中mybatis-springboot-starter不知道從哪個版本開始,當多個入參時用@Param註解會出現綁定參數失敗,即找不到。所以要用Map或實體類將參數封裝起來。