【问题标题】:SQL row and count using for loop使用 for 循环的 SQL 行和计数
【发布时间】:2022-10-02 15:27:39
【问题描述】:

我正在做一个将返回多行的查询,我需要找到一种方法来遍历这些行并从每一行中提取一个值。

如何制作一个从第一行开始到最后一行结束的 for 循环?

repo = findbyID
for (int i = ? ; i = ? ; ? ) // Id\'s are not in order and can be somthing like 5,2,10,12...
  • 您的标题提及计数。您是否还想返回某种计数?

标签: java sql spring-boot hibernate


【解决方案1】:

你的语法似乎有点不对劲。也许你想要这样的东西:

List<Item> items = itemRepository.findAll();
items.forEach(item -> System.out.println(item.getId()));

如果您使用 Spring Data,您还可以按照约定在方法名称本身中显式指定顺序:

List<Item> items = itemRepository.findAllByOrderByIdAsc();
items.forEach(System.out.println(item -> item.getId()));

【讨论】:

  • 假设 ID 是 10 , 20 ,92 ...。如果在我的 for 循环语句中使用增量 1 循环遍历这些 id 将无益。循环遍历此类 ID 的正确方法应该是什么
  • ID 值是什么没有区别。如果您使用 findAllByOrderByIdAsc,它们将始终按顺序从 repo 返回。如果您要使用 forEach,则不需要使用 for 循环。
  • 他的意思是 column ids 还是 DTO ids ?他是在尝试返回 java.sql.ResultSet 还是通过带有 DTO 的某个框架接收?
【解决方案2】:

为了解决这个问题,我不得不将对象传递给 List 类型的方法。然后我必须想办法循环遍历这个列表,所以我使用了 for 循环,例如:

for (InvoiceDTO invoices : invoiceDTO) {
//your code
}

现在,问题解决了。

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 2020-11-23
    相关资源
    最近更新 更多