Lưu và đọc nội dung tập tin ảnh trong JDBC

Có nhiều cách để lưu trữ môt tập tin ảnh như là lưu vào thư mục hoặc bạn có thể lưu vào cơ sở dữ liệu. Đối với bài viết này mình sẽ trình bày cách lưu và đọc nội dung tập tin ảnh trong JDBC mà ở đây chúng ta sẽ sử dụng hệ quản trị cơ sở dữ liệu MySQL để chứa nội dung tập tin ảnh.

Mình có một bảng db_users chứa thông tin bao gồm các thuộc tính id, fullname, age và photo là trường dùng để chứa hình ảnh như sau:

kenhlaptrinh-luu-va-doc-noi-dung-tap-tin-anh-trong-jdbc-h1

Trong MySQL để lưu trữ định dạng hình ảnh thì bạn có thể chọn một trong những kiểu dữ liệu sau:

TINYBLOB: 255 bytes

BLOB: 65,535 bytes (64 KB)

MEDIUMBLOB: 16,777,215 bytes (16 MB)

LONGBLOB: 4 GB

Hướng dẫn lưu nội dung tập tin ảnh trong JDBC:

– Đầu tiên bạn cần tạo ra một kết nối

– Sau đó đọc nội dung tập tin ảnh bằng  InputStream

– Thực hiện lênh SQL lưu dữ liệu vào trong bảng, hình ảnh bạn sử dụng  setBlob()

Kết quả sau khi thực hiện đoạn mã trên:

kenhlaptrinh-luu-va-doc-noi-dung-tap-tin-anh-trong-jdbc-h2

Hướng dẫn đọc nội dung tập tin ảnh trong JDBC:

Hình ảnh được lưu trong cơ sở dữ liệu thường dưới dạng BLOB, trong JDBC để có thể đọc nội dung tập tin ảnh thì bạn sử dụng phương thức getBlob() của lớp  ResultSet

Sau khi dữ liệu nhận được từ kết quả là BLOB thì bạn sử dụng phương thức getBinaryStream() để lấy được mảng byte và cuối cùng sử dụng OutputStream để ghi dữ liệu ra tập tin.

Lời kết: Như vậy lưu và đọc nội dung tập tin ảnh trong JDBC không hề khó, tuy nhiên thông thường các tập tin như hình ảnh thường ít được lưu vào cơ sở dữ liệu mà đa số chọn giải pháp chỉ lưu đường dẫn đến tập tin ảnh, còn hình ảnh sẽ được lưu vào thư mục trên máy chủ.

(Tác giả: Tùng Dương)

Bình luận

Loading...