使用jdbc连接器Mysql在java中一次查询中进行多个选择

使用jdbc连接器Mysql在java中一次查询中进行多个选择,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我尝试用java进行多重选择。我有两个字符串“name”和“artist”,我想在一个查询中同时选择它们,即使其中一个为null 我是这样做的: if ( !nameIsEmpty && !artisIsEmpty ) { rst = stmt.executeQuery("SELECT * FROM school.product_table where name=" + "'" + name + "' and artist=" + "'" + artist + "'")

我尝试用java进行多重选择。我有两个字符串“name”和“artist”,我想在一个查询中同时选择它们,即使其中一个为null

我是这样做的:

if ( !nameIsEmpty && !artisIsEmpty )
{
    rst = stmt.executeQuery("SELECT * FROM school.product_table where name=" + "'" + name + "'  and artist=" + "'" + artist + "'");
}
else if ( nameIsEmpty && !artisIsEmpty )
{
    rst = stmt.executeQuery("SELECT * FROM school.product_table where  artist=" + "'" + artist + "'");
}
else if ( !nameIsEmpty && artisIsEmpty )
{
    rst = stmt.executeQuery("SELECT * FROM school.product_table where  name=" + "'" + name + "'");
}
else
{
    productIsEmpty = true;
}
我认为这不是最好的方法。我希望有一个简单的方法可以在一个查询中实现这一点。
提前感谢。

从school.product_表中选择*,其中name在(name.null)中,artist在(name,null)中

除了将记录与name和artist进行匹配外,它还将返回name=null和artist、artist=null和name、null和null的结果

如果要跳过这两个空结果,请尝试以下操作-


从school.product_表中选择*,其中name在(name.null)中,artist在(name,null)中,and!(artist=null&&name=null)

如果有大量数据,可以使用或代替AND,但也可以创建查询性能问题。因此,是的,在根据输入值生成查询的地方,代码看起来更好。