如何创建所有参数都是可选的多重搜索 SQL 语句?

kel*_*och 5 java sql jdbc

我想知道是否有任何聪明的方法可以为有 5 个可选参数的搜索引擎创建 SQL 语句。可以使用所有参数,也可以仅使用其中一个参数,也可以混合使用其中任何参数。这构成了多达 3000 多种不同的组合。

需要准备该语句以避免 SQL 注入。

我看过这篇文章,但它并没有被削减。

我正在寻找的是这样的东西,

字符串 sql =SELECT * FROM 表 WHERE(可选1)=?和(可选2)=?和(可选3)=?和(可选4)=?和(可选5)=?

prepared.setString(1, 可选1) 等等...

Jak*_*sel 3

使用 java 代码根据参数的存在(它们的长度或存在,以两者为准)将选项添加到 where 子句。这样,如果不需要可选参数,它甚至不会成为 SQL 表达式的一部分。简单的。