<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或实体类将参数封装起来。