没有使用SQL查询插入数据



我想创建一个Java程序,它从一个txt文件中读取行,并使用SQL查询逐个插入它们:

Stream<String> stream = Files.lines(Paths.get("C:\in_progress\test.txt"), StandardCharsets.UTF_8);
stream.forEach(System.out::println);

List<String> result = stream.collect(Collectors.toList());

for(String list : result)
{
System.out.println(list);
Thread.sleep(1000);
ProcessedWords obj = ProcessedWords.builder()
.keyword(list)
.createdAt(LocalDateTime.now())
.build();
processedWordsService.save(obj);
}
}

我看到打印的行,但没有生成SQL查询。你知道我哪里错了吗?

流已经被

使用
stream.forEach(System.out::println);

collect操作无意义。流已经被使用。此时,您需要创建一个新的流。

例如:在下面的例子中,流上的第二个操作将抛出一个异常(Exception in thread "main" java.lang.IllegalStateException: stream has already been operated upon or closed):

List<Integer> intList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8);
Stream<Integer> integerStream = intList.stream()        
integerStream.forEach(System.out::println);
var v = integerStream.collect(Collectors.toList()); // <-- throws exception

你确定在日志中没有看到这个异常吗?

https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html

最新更新