Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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 JDBI`SqlQuery`是否有对SQL`=`的惯用支持,并且SQL`isnull`只有一个表达式?_Java_Sql_Jdbi - Fatal编程技术网

Java JDBI`SqlQuery`是否有对SQL`=`的惯用支持,并且SQL`isnull`只有一个表达式?

Java JDBI`SqlQuery`是否有对SQL`=`的惯用支持,并且SQL`isnull`只有一个表达式?,java,sql,jdbi,Java,Sql,Jdbi,让我们做一个简单的SELECT查询: @SqlQuery("SELECT * FROM mytable WHERE some_column = :myVar") List<MyObjects> getBySomeColumn(String myVar); 。。。这将运行以下任一操作: SELECT * FROM mytable WHERE some_column IS NULL 或 。。。取决于myVar是否为null。处理此类查询最常用的方法是什么?有两种选

让我们做一个简单的
SELECT
查询:

@SqlQuery("SELECT * FROM mytable WHERE some_column = :myVar")
List<MyObjects> getBySomeColumn(String myVar);
。。。这将运行以下任一操作:

SELECT * FROM mytable WHERE some_column IS NULL

。。。取决于
myVar
是否为
null
。处理此类查询最常用的方法是什么?

有两种选择:

  • 将SQL查询重写为以下内容:
  • 从mytable中选择*
    其中(:myVar为null,而某个_列为null)或某个_列=:myVar
    
  • 使用JDBI动态重写查询
  • 有两种选择:

  • 将SQL查询重写为以下内容:
  • 从mytable中选择*
    其中(:myVar为null,而某个_列为null)或某个_列=:myVar
    
  • 使用JDBI动态重写查询

  • 在标准SQL中,您可以在某些列与:myVar不同的地方使用
    ;在标准SQL中,您可以在某些列与:myVar不同的地方使用
    
    
    SELECT * FROM mytable WHERE some_column IS NULL
    
    SELECT * FROM mytable WHERE some_column = :myVar