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

使用JdbcTemplate进行动态查询

葛成双
2023-03-14
问题内容

我有一个关于使用JdbcTemplate进行动态查询的问题。

我的代码如下:

String insertQueries = "INSERT INTO " + tablename;

StringJoiner joiner = new StringJoiner(",");
StringJoiner joiner1 = new StringJoiner(",");
StringJoiner joiner2 = new StringJoiner(",");

while (mapIterator.hasNext()) {
        Map.Entry mapEntry = (Map.Entry) mapIterator.next();
        key = joiner.add((String) mapEntry.getKey()).toString();
        // value = joiner1.add("\"" + (String) mapEntry.getValue() + "\"").toString();
        value = joiner1.add("\"" + (String) mapEntry.getValue() + "\"").toString();
        value1 = joiner2.add("?").toString();
}

insertQueries += " (" + key + ")";
insertQueries += " VALUES ("+value1+")" ;

int row = jdbcTemplate.update(insertQueries, value);

现在,我的问题是,我想要与插入查询中的自动生成问号相同数量的“值”。

现在,值变量考虑为一个字符串,因此,如果我有2个或更多问号,则在值变量中只有一个用逗号分隔的完整字符串,因此它不起作用。

见下面我的查询:

INSERT INTO tablename (fname, lname) VALUES ("abc, xyz") ;

我想要如下:

INSERT INTO tablename (fname, lname) VALUES ("abc", "xyz") ;

问题答案:
**StringJoiner joiner2 = new StringJoiner(",", "(", ")");**
while (mapIterator.hasNext()) {

 //change in value1 as
value = "\"" + (String) mapEntry.getValue() +  "\"";
 value1 = joiner2.add(value);
 myvalue = joiner2.add("?");

}

 //change  insertQueries  as with value as (? ,?)
insertQueries += " VALUES "+ myvalue+"" ;


//get value1 as  ("abc", "xyz")

//update query as
int row = jdbcTemplate.update(insertQueries, value1);


 类似资料:
  • 我正在为spring批处理使用java配置(spring boot)。我有一个员工Id列表,对于每个Id,我需要运行一个查询(如下所示),然后处理数据。 我知道我们可以使用阅读器。setPreparedStatementSetter动态设置上述SQL中的参数。但是,我不确定如何对列表中的每个员工id重复批处理过程。即使我将reader()标记为@StepScope,也只会调用一次reader。(即

  • 问题内容: 我正在尝试使用Mongoose制作动态条件,但是它并没有像我想象的那样起作用。 代码是这样的 如您所见,我正在尝试使用“索引”变量创建动态条件。有可能这样做吗? 先感谢您! 问题答案: 您需要分两步创建对象: 更新资料 现在,node.js 4+支持计算的属性名称,您可以一步完成此操作:

  • 问题内容: React有很多使用PropTypes来检查道具价值的方法。我通常使用的是。但是,最近我遇到一种情况,其中我有一个对象,该对象内部将具有动态键/值。我知道每个键都应该是一个字符串(采用已知格式),每个值都应该是一个整数。即使使用自定义道具验证功能,它仍然假设您知道道具的钥匙。如何使用PropTypes检查对象/形状的键和值是否正确? 再说一遍:我至少要检查每个键的值是一个数字。理想情况

  • 在这篇文章我们看到了如何使用iNalyzer对iOS应用进行静态分析。本文我们将看看如何用iNalyer对iOS应用进行运行时分析。我们能够在运行时调用方法,能够在应用的某个特殊时间找出特定实例变量的值,基本上能做我们用Cycript做的所有事情。 在这篇文章当中,我们成功的用Doxygen生成了html文件,并且打开它看到了关于这个应用的类信息和其他信息。我们将使用Firefox浏览器进行运行时

  • 问题内容: 由于各种原因,我试图编写部分动态的HQL查询而不使用Criteria API。我想知道是否有一种简单的方法可以使用HQL表达式来短路where限制。例如,这是正常工作的原始查询: StatusCodes是字符串列表,而orgIds是整数列表。但是,任一个都是可选的,并且不应限制是否传递null而不是传递集合。我试图做到这一点是这样的: 不幸的是,这行不通,但是还有其他方法可以行得通吗,

  • 问题内容: 我有一个与此类似的类层次结构: 像这样的json输入(我无法改变自己) 我正在像这样用Jackson解析Java中的JSON 我想使用JAVA / Jackson从JSON反序列化类A,B和其他类。JSON中没有嵌入类型信息(并且不能)。我不能在类上使用批注(我不拥有它们),我(相信)我不能使用混合包,因为可能有任意数量的类,例如A和B(混合包不是动态的)。好的是,反序列化代码知道哪个