【发布时间】:2020-04-08 19:59:44
【问题描述】:
我已经准备好了类似的声明
select * from books where author = ? and theme = ?
我不知道该怎么做,如果用户选择选项“任何作者”或“任何主题”,我应该为准备好的语句设置什么?
【问题讨论】:
-
您可以为作者条件传递更多参数,对于 ej :如果用户选择任何作者,则选择 * from books where (0 = any or author = ? );那么任何值都必须为 0,并且选择查询获取所有作者,否则用户选择和作者,则任何值必须为 1,并且查询采用 or 条件。对不起我的英语。
-
我不明白你的意思。我应该使用类似 statement.setInt(1, authorId);所以我不明白如何传递更多的值。
-
好的,any 可以作为作者的另一个参数。 select * from books where (0 = ? or author = ? );并在您的代码中 if(author.isAny()) 将 0 或 1 传递给第一个参数并在第二个参数中为空,
-
我明白了,但我认为它的解决方案很糟糕,因为它是某种糟糕的架构。