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

如何在JDBCTemplates中使用SELECT IN子句?

宦高岑
2023-03-14
问题内容

这是我第一次使用JDBCTemplates,并且遇到了需要使用如下查询的情况:

SELECT * FROM table WHERE field IN (?)

我怎么做?我已经尝试过传递列表/数组值,但是没有成功,我遇到了异常。我当前的代码如下所示:

Long id = getJdbcTemplate().queryForLong(query, new Object[]{fieldIds});

Spring文档指出,除了生成所需数量的“?”之外,没有其他方法可以这样做。占位符以匹配参数List的大小。有解决方法吗?


问题答案:

我认为您不能将其作为单个“?”来完成。与Spring JDBC模板无关,它是核心SQL。

您必须根据需要为其中的任意一个构建一个(?,?,?)。



 类似资料:
  • 问题内容: 我正在使用iBATIS创建选择语句。现在,我想用iBATIS实现以下SQL语句: 使用以下方法,语句准备不正确,并且没有结果返回: iBATIS似乎重新构建了该列表,并尝试将其解释为字符串。 如何正确使用IN子句? 问题答案: 这是一篇博客文章,回答您的问题: iBatis:使用SQL IN关键字支持数组或列表参数 在Java中,您应该传入java.util.List。例如

  • 我正在使用Spring Boot和JDBCT模板开发一个用于数据库查询的应用程序。 问题是这样的:如果我必须在一个表上询问db,我没有问题。但是,如果我有一个join,我该如何执行这个任务? 更具体地说,创建表的SQL命令如下: 对应的java类如下: 约束是 firewall_Items.firewall_id = firewall.id(因此,这些是我必须用来执行 join 的变量)。 现在,

  • 问题内容: 我正在将所有SQL Server查询都转换为MySQL,并且其中所有查询都失败了。这是一个例子: 问题答案: 8.0之前的MySQL 不支持WITH子句(在SQL Server中为CTE;在Oracle中为子查询分解),因此您只能使用: 临时表 派生表 内联视图(有效地代表WITH子句-它们是可互换的) 该功能的请求可以追溯到2006年。 如前所述,您提供了一个糟糕的示例-如果您不以任

  • 问题内容: 我正在尝试搜索文本和备注的多列,以查找某些我不想看到的特定短语和黑名单短语。 假设下表 前任。我想找到所有提到(在任何领域中)“苹果”但黑名单中的“苹果酱”的故事。 如何在where子句中使用别名?我找不到有关此主题的任何文档: 1)这种方法可行吗? 2)替代方法是否意味着我将在每次行迭代中执行多个字符串连接? 问题答案: 我不能在where子句中使用别名。 这种方法可行吗? 当然,将

  • 在React的官方文件中提到- 如果您熟悉React类生命周期方法,那么可以将useEffect钩子看作componentDidMount、componentDidUpdate和componentWillUnmount的组合。 我的问题是--我们如何在钩子中使用生命周期方法?

  • 问题内容: 为什么不能在where子句中使用临时列? 例如,此查询: 这将显示两列,一列称为,另一列称为。是即时创建的,始终为1或0,具体取决于是否有50个或该品牌的产品。 这一切对我来说都是有意义的,除了我不能仅在以下查询中选择时: 这给了我这个错误: 问题答案: 使用来代替: 被评估 前 的。被评估之后。