背景:
上述两个方法查询同一张表,只是数据结构不同,完全可以合成一份方法,减少代码冗余。
实现效果如下
不传参,查询所有的数据
传入特定参数实现按条件查询:
实现方式:
@GetMapping(value = "/queryAllCourseConent")
public List<CourseContentEntity>queryAllCourseContent(){
return iCourseContentService.queryAllCourseContent();
@Override
public List<CourseContentEntity> queryAllCourseContent() {
return courseContentMapper.queryAllCourseContent();
}
List<CourseContentEntity> queryAllCourseContent();
关键在于使用通用的sql语句,体现复用思想
<select id="queryCourseContentRecord" resultMap="courseContentMap" >
SELECT id,course_assembly_id,assembly_content,create_time,created_id,created_by,update_time,updated_id,updated_by
FROM tar_course_content_info
WhERE
is_delete=0
<if test="id != null"> and id = #{id} </if>
<if test="courseAssemblyId != null">and course_assembly_id = #{courseAssemblyId}</if>
<if test="assemblyContent != null">and assembly_content = #{assemblyContent}</if>
<if test="createdBy != null">and created_by = #{createdBy}</if>
<if test="updatedBy != null">and updated_by = #{updatedBy}</if>
<if test="remark != null">and remark = #{remark}</if>
</select>
关于同一张表的查询和之前分享过的对于同一张表的更新写了多个接口的问题有异曲同工之处,都是缺乏复用思想导致的。这类重复的代码被归于“坏代码”,既增加了不必要的代码,造成代码冗余,也增加了出错的概率。