这是我使用MyBatis中的条件查询数据(Java 8)的代码:
public List<ReportSummaryOverview> select(String userName,String gender,String country) {
ReportSummaryOverviewExample example = new ReportSummaryOverviewExample();
ReportSummaryOverviewExample.Criteria criteria = example.createCriteria();
if(StringUtils.isNotBlank(userName)){
criteria.andUserNameEquals(userName);
}
if(StringUtils.isNotBlank(gender)){
criteria.andGenderEquals(gender);
}
if(StringUtils.isNotBlank(country)){
criteria.andCountryEquals(country);
}
List<ReportSummaryOverview> report = reportSummaryOverviewMapper.selectByExample(example);
return report;
}
有什么方法可以简化条件,像这样:
criteria.addSomeParam(userName);
和addSomeParam来确定userName不为null,然后添加为条件,否则为空。当查询参数大于3时,代码看起来难闻。有什么办法可以编写更干净的代码?