gpt4 book ai didi

mysql - 如何使用 java.sql 中的 where 子句的动态计数来执行 mysql 语句

转载 作者:行者123 更新时间:2023-11-29 13:04:43 26 4
gpt4 key购买 nike

我有一个 jersey java 服务器和一个 mysql 服务器:

我发送一个POSTArrayList<Long>到服务器。然后我想做一个像 ...where long OR long OR long.... 这样的选择

有没有一种优雅的方法来解决这个问题,而不是总是在 for 循环中进行单个选择?

如何形成具有动态计数 where 子句的 sql 语句?

非常感谢。

最佳答案

您可以在 SQL 查询中将 INwhere 子句结合使用,而不是多次 OR
您可以在循环中读取 ArrayList 对象并设置 where 子句值。

JAVA代码片段:

int paramCount = list.size();

StringBuilder sqlSelect = new StringBuilder( 1024 );
sqlSelect.append( "select x,y,z from my_table " );

if( paramCount > 0 ) {
sqlSelect.append( "where long_column in ( " );
for( i = 0; i < paramCount; i++ ) {
sqlSelect.append( ( i > 0 ? ", ?" : "?" );
} // for each param
sqlSelect.append( " )" );
} // if list is not empty

// make the prepare statement (pst) with the above sql string
// ...

// now set the parameter values in the query
int paramIndex = 1;
if( paramCount > 0 ) {
for( i = 0; i < paramCount; i++ ) {
pst.setLong( paramIndex++, ( (Long)list.get( i ) ).longValue() );
} // for each param
} // if list is not empty

关于mysql - 如何使用 java.sql 中的 where 子句的动态计数来执行 mysql 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com