sql >> Databasteknik >  >> RDS >> Mysql

Unionsfråga med flera val efter java 8

Det idiomatiska tillvägagångssättet här skulle vara som följer (med JDK 9 API):

try (Stream<Record5<UUID, UUID, String, Integer, String>> stream = valuesToQuery
        .stream()
        .map(this::getSelectQueryForValue)
        .reduce(Select::union)
        .stream() // JDK 9 method
        .flatMap(Select::fetchStream)) {
    ...
}

Den använder den användbara Optional.stream() metod, som lades till i JDK 9. I JDK 8 kunde du göra detta istället:

valuesToQuery
    .stream()
    .map(this::getSelectQueryForValue)
    .reduce(Select::union)
    .ifPresent(s -> {
        try (Stream<Record5<UUID, UUID, String, Integer, String>> stream = 
             s.fetchStream()) {
            ...
        }
    })

Jag bloggade om detta mer detaljerat här.




  1. mySQL query multiple - returnerar felet mysql_fetch_array

  2. MySQL dumpa i CSV-textfiler med kolumnnamn överst?

  3. paginering i listvy

  4. Varning:mail() [function.mail]:Det gick inte att ansluta till mailservern på localhost port 25