当前位置: 首页 > 面试题库 >

如何使用WHERE x IN子句为PreparedStatement编写SQL?

徐君植
2023-03-14
问题内容

我有一个查询,看起来像这样:

SELECT last_name,
       first_name,
       middle_initial
FROM   names
WHERE  last_name IN ('smith', 'jones', 'brown')

我需要能够在IN子句中对列表进行参数化,以将其写为JDBC PreparedStatement。该列表中可以包含任意数量的名称。

是执行此操作的正确方法:

SELECT last_name,
       first_name,
       middle_initial
FROM   names
WHERE  last_name IN (?)

然后建立一个参数列表?还是有更好(更正确)的方法来做到这一点?


问题答案:

简而言之,您不能开箱即用。但是,使用Spring,您可以做自己想做的事情。请参阅如何通过Spring JdbcTemplate生成动态的“(…)”SQL列表?



 类似资料:
  • 数据库:Sybase Advantage 11 在我对数据进行规范化的过程中,我试图删除从以下语句中得到的结果:

  • 问题内容: 我想编写一个方法,该方法返回按字段“ serviceId”分组的最后添加的对象的列表。 以下HQL可以使用,但我想使用Criteria API编写: 像这样: 提前致谢。 编辑: 现在,我需要使用eclipselink API = /的类似查询, 基本上,我需要最后N行(最大日期),该状态是下面所述的五行之一,按serviceId列分组。 由于我的经验不足,这是我所能做到的最好的: 缺

  • 我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)

  • 问题内容: 将SQL IN子句与的实例一起使用的最佳解决方法是什么,由于SQL注入攻击安全性问题,多个值不支持该子句:一个占位符代表一个值,而不是值列表。 考虑以下SQL语句: 使用本质上是一种不可行的尝试,它是首先解决使用原因的方法?。 有哪些解决方法? 问题答案: 建议的选项是: 准备,对每个值执行它,并在客户端对结果进行UNION。只需要一个准备好的语句。缓慢而痛苦。 准备并执行它。每个IN

  • 问题内容: 我想加入两个表CUSTMR和DEPRMNT。 我需要的是:LEFT OUTER JOIN内有两个或多个带有子查询的表的LEFT OUTER JOIN,如下所示: 表格:CUSTMR,DEPRMNT 查询为: 这里的子查询是: 是否可以在LEFT OUTER JOIN内编写这样的子查询? 在我的DB2数据库上运行此查询时出现错误。 问题答案: 您需要在子选择上使用“ correlatio

  • 问题内容: 结合使用子句和实例的最佳解决方法是什么,由于注入攻击安全性问题,多个值不支持该子句:一个?占位符代表一个值,而不是值列表。 考虑以下SQL语句: 使用;本质上是一种不可行的尝试,它是首先解决使用原因的解决方法?。 有哪些解决方法? 问题答案: 建议的选项是: 准备,对每个值执行它,并在客户端对结果进行。只需要一个准备好的语句。缓慢而痛苦。 准备并执行它。每个大小需要一个准备好的语句。快