Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn liên hợp với nhiều lựa chọn bài đăng java 8

Cách tiếp cận thành ngữ ở đây sẽ như sau (sử dụng 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)) {
    ...
}

Nó sử dụng Optional.stream() phương thức này đã được thêm vào JDK 9. Trong JDK 8, bạn có thể thực hiện việc này thay thế:

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

Tôi đã viết blog về điều này chi tiết hơn tại đây.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL WHERE TRONG Truy vấn - ĐẶT HÀNG THEO Khớp

  2. PDO - lastInsertId () để chèn truy vấn với nhiều hàng

  3. Bản đồ mối quan hệ ngủ đông / Tăng tốc độ chèn hàng loạt

  4. Làm thế nào để chuyển đổi / cast varchar sang date?

  5. Pymysql Cursor.fetchall () / Fetchone () Trả về Không có