我在tomcat上运行了一个基于REST的java模块,我在URL下面调用。当我在URL下面调用它时工作正常:
https://xx.xx.xx.xx/emp/salary?query=(FirstName startswith anil)
现在我希望在&
分隔符的基础上在URL中支持多查询,为此我已经完成了一些代码更改,如下所示。基本上是基于&
String[] fArray = filterstr.split("&");
https://xx.xx.xx.xx/emp/salary?query=(FirstName startswith anil%26LastName startswith singh)
%26
基本上是&
使用上面的网址也可以正常使用。
问题是,在我们的数据库中,我们还支持firstname为"anil&kumar"
,使用其他接口的管理员admin可以使用所有分隔符创建用户名。
现在当您使用:query=(FirstName startswith anil%26kumar)
调用第一个网址时,它失败了,因为我们的拆分代码会将此用户分为2个部分anil
,kumar
。但它应该是一个,以便它可以在DB中匹配。
所以想到我怎么能解决这个问题。
当我在查询参数中有下面的字符串时,我能够使用分割方法与&
分开,我得到2个部分
query= (FirstName startswith anil&LastName startswith singh)
FirstName startswith anil
LastName startswith singh
但是让查询参数为,
query= (FirstName startswith bob&smith&LastName startswith singh)
现在使用拆分它将bob&smith
分为两部分(bob
,smith
),但我不想要,因为用户是bob&smith
。
它在分裂后返回 -
[FirstName startswith bob, smith, LastName startswith singh]
想要更好的解决方案。第一,第二查询都应该有效。
答案 0 :(得分:0)
https://xx.xx.xx.xx/emp/salary?query=(FirstName=bob%26smith&LastName=singh)
这应该可以正常工作。 我在我的机器上试过这个......对我来说工作正常
如果您的数据库在名称上使用拆分方法,那么就这样做
https://xx.xx.xx.xx/emp/salary?query=(FirstName=bob|smith&LastName=singh)
这是一个PIPE标志,分成