关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
4个月前关门了。
改进这个问题
不知道论坛上是否有人回答过这个问题。问题是如何避免在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;
1条答案
按热度按时间wxclj1h51#
您可以使用一个方法来检查和添加sqlpart。例如:
方法,检查给定的getter是否有值,如果有,则添加sqlpart