当您有多个查询组合时,java是搜索DB的更好方法?
我试着思考是否有更好的方法来做以下事情。。 我有一个包含3个输入的表单,在servlet中我读到了它们:
String input1= request.getParameter("input1");
String input2= request.getParameter("input2");
String input3= request.getParameter("input3");
我使用StringUtils.isBlank(input1)
检查用户是否填写了输入
现在我想询问我的数据库(我使用preparedStatements
来询问我的数据库(SQLITE),以获取表中是否有包含这些输入组合的记录
因此,如果用户只填写第一个输入,那么查询应该是
SELECT * FROM MyTable WHERE INPUT1='input1'
如果用户填写了2个输入,那么查询应该是
SELECT * FROM MyTable WHERE INPUT1='input1' AND INPUT2='input2'
和e.t.c
我所做的是
if(!StringUtils.isBlank(input1) && !StringUtils.isBlank(input2) && !StringUtils.isBlank(input3) ){
//search for input1+ input2+ input3
}else if(!StringUtils.isBlank(input1) && !StringUtils.isBlank(input2)){
//search for input1 + input2
}//e.t.c
有没有更好的方法来实现这一点,而不是根据输入是否已填充来写下所有可能的查询组合?谢谢!
# 1 楼答案
“更简单”是什么意思一直是个问题,但我认为以下内容更具可读性:
# 2 楼答案
如果您已经在使用
StringUtils
,那么您可以执行以下操作:这种逻辑最终会更简单,因为你不需要做
if-else-if
。只是简单的if
,这种方法更受支持