Tôi cần một hàm Java trả về kết quả của truy vấn SQL SELECT
làm tham số InputStream
cho một hệ thống khác gửi kết quả qua mạng.Kết quả SQL Java vào InputStream
Tuy nhiên, InputStream
phải là String
với dấu phân tách tùy chỉnh (ví dụ: thường, nhưng không phải lúc nào cũng là CSV).
Trong khi tôi có thể dễ dàng tạo một hàm để truy xuất kết quả, hãy tạo String
được phân cách và cuối cùng chuyển đổi String
thành InputStream
, kết quả SQL thường quá lớn để xử lý trong bộ nhớ. Ngoài ra, việc xử lý toàn bộ tập kết quả trước khi trả lại kết quả sẽ phải chịu một thời gian chờ không mong muốn.
Làm cách nào tôi có thể trả lại InputStream
để lặp qua kết quả SQL và gửi dữ liệu đã xử lý (được phân cách) khi dữ liệu được trả về từ cơ sở dữ liệu?
bạn đã xem xét sử dụng tập hợp hàng jdbc được lưu trong bộ nhớ cache chưa? Điều đó có thể hữu ích cho những gì bạn đang cố gắng làm. http://docs.oracle.com/javase/1.5.0/docs/api/javax/sql/rowset/CachedRowSet.html – ChadNC
Không, nhưng điều đó có thể giúp tôi như thế nào? Vấn đề không phải là rời khỏi kết nối mở, nhưng có kết quả trong bộ nhớ. –
đó là những gì một hàng rào được lưu trữ. cung cấp một cách dễ dàng hơn để gửi kết quả truy vấn qua mạng tới các thiết bị, ứng dụng khác, v.v. – ChadNC