不知道这是否曾经在论坛上回答过。问题是如何避免在 java 代码中使用多个 if-else 语句,以便根据收到的输入进行渐进式查询构建。
下面的例子:
我在 UI 上有一个搜索表单,必须对其运行查询。UI 表单有多个参数。例如:如果搜索员工/员工,可以使用姓名(通配符)、工资组、办公地点等进行搜索。用户可以以任意组合填写此搜索表。
后端 sql 查询有多个连接表示例:employee、salarygroups、offices 等
数据正在使用 json 传输到服务器代码 .. 类似
"filterRequest"
{
"employeeName": String,
"salaryGroup": String,
"offices": String
}
以上只是一个示例,实际上我有大约 10 个可用于搜索的参数。问题是我目前正在编写多个 if else 语句来检查是否正在传递这些参数并相应地构建我的 SQL 查询,例如
if(filterRequest.getEmployeeName()!=null){
sqlQuery.append("and emp.employeeName like (:employeeName)");
}
if(filterRequest.getSalaryGroup()!=null){
sqlQuery.append("and sal.getSalaryGroup like (:salaryGroup)");
}
return sqlQuery;