Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用未知数量的AND进行SQL查询_Java_Sql_Database_Jdbc - Fatal编程技术网

Java 使用未知数量的AND进行SQL查询

Java 使用未知数量的AND进行SQL查询,java,sql,database,jdbc,Java,Sql,Database,Jdbc,假设我想在数据库中搜索一个或多个字段。现在我不知道我有多少这样的领域。所以我做了一个函数,它把它们都当作参数,但不适用的字符串都是空字符串(或者0代表int) 现在,当我进行查询时,SELECT*FROM TableName WHERE我无法确定将我的和命令放在哪里。有人能很好地解决这个问题吗?我可以用很多if语句来做,但那很混乱。 我要补充的是,我必须使用JDBC 你听说过吗?你只是想检查每一列和传入的相应参数是否相等吗?如果该参数不是空的,那么是的。如果它是空的,我想忽略它。非常感谢。我想这

假设我想在数据库中搜索一个或多个字段。现在我不知道我有多少这样的领域。所以我做了一个函数,它把它们都当作参数,但不适用的字符串都是空字符串(或者0代表int)

现在,当我进行查询时,
SELECT*FROM TableName WHERE
我无法确定将我的
命令放在哪里。有人能很好地解决这个问题吗?我可以用很多if语句来做,但那很混乱。
我要补充的是,我必须使用JDBC

你听说过吗?你只是想检查每一列和传入的相应参数是否相等吗?如果该参数不是空的,那么是的。如果它是空的,我想忽略它。非常感谢。我想这会让它变得非常简单。使用StringBuilder进行动态字符串操作更好。
String query = "SELECT * FROM TableName WHERE 1=1"; 
if(a!=null)
    query+="AND a=?";
if(b!=null)
    query+="AND b=?";

PreparedStatement stmt ...
String query = "SELECT * FROM TableName WHERE 1=1"; 
if(a!=null)
    query+="AND a=?";
if(b!=null)
    query+="AND b=?";

PreparedStatement stmt ...