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

Java在IN子句中带有参数列表的PreparedStatement

赵晨
2023-03-14
问题内容

执行查询时如何在JDBC的prepareStatement中设置in子句的值。

例:

connection.prepareStatement("Select * from test where field in (?)");

如果此条款可


问题答案:

我要做的是添加一个“?” 对于每个可能的值。

例如:

List possibleValues = ... 
StringBuilder builder = new StringBuilder();

for( int i = 0 ; i < possibleValue.size(); i++ ) {
    builder.append("?,");
}

String stmt = "select * from test where field in (" 
               + builder.deleteCharAt( builder.length() -1 ).toString() + ")";
PreparedStatement pstmt = ... 

然后愉快地设置参数

int index = 1;
for( Object o : possibleValue ) {
   pstmt.setObject(  index++, o ); // or whatever it applies 
}


 类似资料:
  • 例如,我想做这样的事情: 新建Select().from(Table).where(“id in?”,list).execute()

  • 记录具有id和名称 带有@Convert的DocumentModel 记录转换器 如果recordIds有多个值(例如:docId=1),即使: 嵌套选择不工作 IN子句有和没有()不工作 子句的成员不工作 导致本机SQL直接无法工作 @公式不工作 而且问题似乎是记录应该是单引号-逗号分隔的,而不仅仅是逗号分隔的,因为它们是字符串。(本机SQL查询在这种情况下工作)

  • 问题内容: 我该如何对包含一个IN带有可变数量的参数的子句的查询进行参数化(例如这样的查询)? 在此查询中,参数的数量可以在1到5之间的任何位置。 我不希望对此(或XML)使用专用的存储过程,但是如果有一些特定于SQL Server 2008的优雅方法,我可以接受。 问题答案: 这是我使用的一种quick-and-dirty的技术: 因此,这是C#代码: 两个警告: 表现很糟糕。LIKE “%…%

  • 问题内容: 需要知道如何构造一个hibernate查询,该查询可获取与包含多个列值的子句匹配的结果。 例如, 这里将是一个二维数组,可以包含用于基本类型例如,基本包装对象,等等。 这可能吗? 问题答案: 在这里写下我如何实现此目标。基本上,我们需要从需要查询的列集中制作一个Hibernate组件(读取@Embeddable对象),并将其嵌入到主实体中。 列组可以如下组合: 将上述内容嵌入到您的主要

  • 问题内容: 我正在尝试使用ORDER BY子句编写JPQL查询: 我想设置一个“ order”参数,其值为“ ASC”或“ DESC”: 然后在我的实现中: 这是当我收到hibernate错误时: 关于我在做什么错的任何想法吗?谢谢! 问题答案: “ ASC”或“ DESC”不能作为查询参数。您可以改用字符串串联。 您应该验证的内容只能是ASC或DESC,而不能直接来自用户。

  • 问题内容: 我从table1中选择所有数据,以匹配table2中field3和field4的所有匹配唯一组合。 这是我精简的SQL: 我需要将我的SQL转换为hibernate条件。我的实体对象正确映射到了表,并将响应转换为正确的结果实体,但是我无法正确转换where子句。 我有的 我希望我的where子句类似于: 但这是hibernate所不允许的。 我尝试推出where子句以具有两个子查询,并