- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了在 Java 应用程序中适应 SQL 模板,我需要按如下方式格式化元素:
RIGHT JOIN (values (123), (456), (789)..
特别是,给定一个 Java 整数列表:
List<int> ints = Arrays.asList(123, 456, 789)
如何正确使用StringJoiner (examples)输出如下字符串?
(123), (456), (789)
我能找到的最接近的例子是
StringJoiner mystring = new StringJoiner(",", "(", ")");
哪个返回
(123, 456, 789)
更多背景/上下文
MadProgrammer 指出我可能会通过 PreparedStatement
以不同的方式处理这个问题。这是我要填写的实际查询...
例如,这里是原生 SQL 中的查询片段:
SELECT loadlist.id as load_id, payload
FROM payload_log
RIGHT JOIN (values (123), (456), (789)) as loadlist(id)
ON payload_log.entity_id = loadlist.id;
下面是它是如何从应用程序中调用的。理想情况下,我们可以使用 :ids
参数进行绑定(bind),但不确定如何使用 joiner 来执行 String.format。
String queryString = String.format("SELECT loadlist.id as load_id, payload\n"+
"FROM payload_log" +
" RIGHT JOIN (values (:ids)) as loadlist(id)" +
" ON payload_log.entity_id = loadlist.id)";
return entityManager.createNativeQuery(queryString).setParameter("ids", loadIds);
现在我应该能够在应用格式后使用 query.setParameter
传递 :ids
参数,如下面的答案?那么 PreparedStatement
适合什么地方呢?
最佳答案
使用现有代码,最简单的方法是将括号添加到分隔符中:
StringJoiner mystring = new StringJoiner("), (", "(", ")");
// add...
// (123), (456), (789)
或者只使用 collector :
String s = Arrays.asList(123, 456, 789)
.stream()
.map(Object::toString)
.collect(Collectors.joining("), (", "(", ")"));
// (123), (456), (789)
最好使用准备好的语句,而不是使用字符串操作来构建查询。
关于java - StringJoiner - 括号中的每一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66717034/
为了在 Java 应用程序中适应 SQL 模板,我需要按如下方式格式化元素: RIGHT JOIN (values (123), (456), (789).. 特别是,给定一个 Java 整数列表:
我有以下代码: StringJoiner stringJoiner = new StringJoiner(","); List persons = Arrays.asList(new Person("
我有以下方法 public String toIndentedString() { StringJoiner sj = new StringJoiner("\n"); sj.add(r
谁能告诉我 StringJoiner 是否是线程安全的? 我知道 StringBuilder 和 StringBuffer 之间的区别,但找不到有关 StringJoiner 的信息。 最佳答案 不同
我有如下 map 列表: List> someObjectsList = new ArrayList>(); 我将以下数据存储在每个 HashMap 中 key value 2
我最近遇到了一个 Java 8 类 StringJoiner它使用分隔符添加字符串并为其添加前缀和后缀,但我无法理解此类的需要,因为它也使用 StringBuilder在后端,还执行非常简单的附加字符
当我使用这个 gradle 依赖项时出现以下错误: compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.4
我有课: public class Item { private String first; private String second; public Item(String fi
我如何使用 Java 8 流重写它?我还不太熟悉 Java 8 功能。 private final ArrayList ledger = new ArrayList<>(); /** * * @r
我是一名优秀的程序员,十分优秀!