当前位置: 代码迷 >> 综合 >> mybatis动态查询,模糊查询
  详细解决方案

mybatis动态查询,模糊查询

热度:60   发布时间:2023-10-18 22:13:36.0

mybatis动态查询,模糊查询

第一种:直接动态sql注解的形式

@Select("<script>"+"select * from problem where pro_res=0 and pro_state=#{state}  "+"      <if test='name != null' >   "+"     and app_id in (select app_id from application where app_name like '%${name}%' )"+"      </if>"+"      <if test='title != null' >   "+"            and pro_title like '%${title}%' "+"      </if>"+"      <if test='level != null' >"+"            and pro_level=#{level} "+"      </if>"+"      <if test='industry != null' >"+"            and pro_industry like '%${industry}%' "+"      </if>"+"      <if test='company != null' >"+"            and pro_company like '%${company}%' "+"      </if>"+"      <if test='keyword != null' >"+"            and pro_keyword like '%${keyword}%' "+"      </if>"+"</script>")
@ResultMap("problemMap")
List<Problem> searchByConditions(String name, @Param("title") String title, String level, String industry, String company, String keyword,@Param("state") String state);

第二种,基于Example的,适合于单个表的条件查询,模糊查询

@Override
public List<Subject> searchByConditions(String name, String degree, String title, String field, String institute) {SubjectExample subjectExample=new SubjectExample();SubjectExample.Criteria or = subjectExample.or();if (StringUtils.isNotBlank(name)){or.andSubNameLike("%"+name+"%");}if (StringUtils.isNotBlank(degree)){or.andSubEducationLike(degree);}if (StringUtils.isNotBlank(title)){or.andSubHeadLike("%"+title+"%");}if (StringUtils.isNotBlank(field)){or.andSubFieldLike("%"+field+"%");}if (StringUtils.isNotBlank(institute)){or.andSubWorkplaceLike("%"+institute+"%");}return subjectMapper.selectByExample(subjectExample);
}
  相关解决方案