Hướng dẫn how to retrieve blob data from mysql database using java - cách lấy dữ liệu blob từ cơ sở dữ liệu mysql bằng java

Tóm tắt: & NBSP; Hướng dẫn này chỉ cho bạn cách viết và đọc dữ liệu blob MySQL bằng API JDBC.: this tutorial shows you how to write and read MySQL BLOB data using JDBC API.

Chúng tôi sẽ sử dụng bảng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
2 trong cơ sở dữ liệu mẫu MySQLJDBC. Để trình diễn, chúng tôi sẽ thêm một cột có tên

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
3 vào bảng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
2. Kiểu dữ liệu của cột này sẽ là & nbsp;

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
5 có thể giữ tới 16MB.

Câu lệnh bảng thay đổi sau đây thêm cột tiếp tục vào bảng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
2.

ALTER TABLE candidates ADD COLUMN resume LONGBLOB NULL AFTER email;

Code language: SQL [Structured Query Language] [sql]

Chúng tôi sẽ sử dụng sơ yếu lý lịch mẫu ở định dạng PDF và tải tệp này vào cột

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
3 của bảng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
2 sau. Bạn có thể tải xuống tệp PDF mẫu để thực hành thông qua liên kết sau:

Tải xuống John Doe Resume ở định dạng PDF

Viết dữ liệu Blob vào cơ sở dữ liệu MySQL

Các bước để viết dữ liệu Blob vào cơ sở dữ liệu MySQL như sau:

Đầu tiên, hãy mở một kết nối mới đến cơ sở dữ liệu bằng cách tạo một đối tượng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
9 mới.

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]

Sau đó, xây dựng một câu lệnh cập nhật và tạo một

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
0 từ đối tượng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
9.

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]

Tiếp theo, đọc dữ liệu từ tệp sơ yếu lý lịch mẫu bằng cách sử dụng phương thức

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
2 và gọi

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
3 để đặt tham số cho

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
0.

// read the file File file = new File[filename]; FileInputStream input = new FileInputStream[file]; // set parameters pstmt.setBinaryStream[1, input]; pstmt.setInt[2, candidateId];

Code language: Java [java]

Sau đó, hãy gọi phương thức

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
5 của đối tượng

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
0.

pstmt.executeUpdate[];

Code language: Java [java]

Cuối cùng, đóng các đối tượng

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
0 và

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
9 bằng cách gọi các phương thức

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
9.

Để đơn giản hóa quy trình tạo

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
9, chúng tôi sử dụng lớp

// read the file File file = new File[filename]; FileInputStream input = new FileInputStream[file]; // set parameters pstmt.setBinaryStream[1, input]; pstmt.setInt[2, candidateId];

Code language: Java [java]
1 mà chúng tôi đã phát triển trong hướng dẫn trước đây để mở kết nối mới. Ví dụ hoàn chỉnh về việc viết dữ liệu blob vào cơ sở dữ liệu MySQL như sau:

package org.mysqltutorial; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; /** * * @author mysqltutorial.org */ public class Main { /** * Update resume for a specific candidate * * @param candidateId * @param filename */ public static void writeBlob[int candidateId, String filename] { // update sql String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; try [Connection conn = MySQLJDBCUtil.getConnection[]; PreparedStatement pstmt = conn.prepareStatement[updateSQL]] { // read the file File file = new File[filename]; FileInputStream input = new FileInputStream[file]; // set parameters pstmt.setBinaryStream[1, input]; pstmt.setInt[2, candidateId]; // store the resume file in database System.out.println["Reading file " + file.getAbsolutePath[]]; System.out.println["Store file in the database."]; pstmt.executeUpdate[]; } catch [SQLException | FileNotFoundException e] { System.out.println[e.getMessage[]]; } } /** * @param args the command line arguments */ public static void main[String[] args] { writeBlob[122, "johndoe_resume.pdf"]; } }

Code language: Java [java]

Hãy để chạy chương trình.

Bây giờ chúng tôi kiểm tra bảng & nbsp; ________ 12 cho ứng viên có ID 122.

SELECT * FROM candidates WHERE id = 122;

Code language: SQL [Structured Query Language] [sql]
As Bạn thấy, chúng tôi có dữ liệu Blob được cập nhật trong cột Sơ yếu lý lịch của bảng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
2 để ghi lại với ID 122.

As you see, we have BLOB data updated in the resume column of the

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
2 table for record with id 122.

Đọc dữ liệu Blob từ cơ sở dữ liệu MySQL

Quá trình đọc dữ liệu blob từ cơ sở dữ liệu tương tự như quá trình viết blob ngoại trừ phần chúng tôi viết dữ liệu blob vào tệp.

Đầu tiên, mở một kết nối mới đến cơ sở dữ liệu.

Connection conn = MySQLJDBCUtil.getConnection[dbURL,username,password];

Code language: Java [java]

Sau đó, xây dựng một câu lệnh Chọn và tạo một

String updateSQL = "UPDATE candidates " + "SET resume = ? " + "WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[updateSQL];

Code language: Java [java]
0 từ đối tượng

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
9.

String selectSQL = "SELECT resume FROM candidates WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement[selectSQL];

Code language: Java [java]

Tiếp theo, đặt các tham số và thực hiện truy vấn:

pstmt.setInt[1, candidateId]; ResultSet rs = pstmt.executeQuery[];

Code language: Java [java]

Sau đó, lấy dữ liệu blob từ

// read the file File file = new File[filename]; FileInputStream input = new FileInputStream[file]; // set parameters pstmt.setBinaryStream[1, input]; pstmt.setInt[2, candidateId];

Code language: Java [java]
6 và ghi nó vào một tệp:

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
0

Cuối cùng, hãy gọi & nbsp; ________ 29 Phương thức & nbsp; của các đối tượng

// read the file File file = new File[filename]; FileInputStream input = new FileInputStream[file]; // set parameters pstmt.setBinaryStream[1, input]; pstmt.setInt[2, candidateId];

Code language: Java [java]
8 và

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
9. Nếu bạn sử dụng câu lệnh Try-with-Resource, bạn không cần phải làm điều đó một cách rõ ràng.

Ví dụ sau đây minh họa cách đọc dữ liệu Blob từ cơ sở dữ liệu MySQL.

Connection conn = DriverManager.getConnection[url,username,password];

Code language: Java [java]
1

Sau khi chạy chương trình, duyệt dự án thư mục, bạn sẽ thấy rằng có một tệp mới có tên

pstmt.executeUpdate[];

Code language: Java [java]
0 được tạo.

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách làm việc với dữ liệu Blob MySQL từ JDBC.

Hướng dẫn này có hữu ích không?

Làm cách nào để nhận dữ liệu blob từ cơ sở dữ liệu MySQL?

Truy xuất hình ảnh và tệp được lưu trữ dưới dạng blob từ bảng MySQL bằng Python..
Cài đặt Python đầu nối MySQL bằng PIP ..
Thứ hai, thiết lập kết nối cơ sở dữ liệu MySQL trong Python ..
Sau đó, xác định truy vấn chọn để tìm nạp các giá trị cột Blob từ bảng cơ sở dữ liệu ..
Thực hiện truy vấn chọn bằng con trỏ.execute [].
Sử dụng con trỏ ..

Làm thế nào chúng ta có thể truy xuất dữ liệu Blob từ cơ sở dữ liệu MySQL bằng JSP?

Tải hình ảnh Blob từ SQL và hiển thị trong trang JSP bằng Java Servlet..
Lấy dữ liệu hình ảnh từ cơ sở dữ liệu dưới dạng một mảng byte, bằng cách sử dụng JDBC.....
Mã hóa dữ liệu nhị phân của hình ảnh thành biểu diễn chuỗi ở định dạng Base64 ..
Hiển thị hình ảnh trên trang JSP bằng cách sử dụng thẻ với nguồn hình ảnh là chuỗi base64 ..

Làm thế nào tôi có thể nhận được hình ảnh blob từ cơ sở dữ liệu?

Để hiển thị hình ảnh Blob cho trình duyệt, hãy tạo một tệp PHP và để thực hiện như sau.Tệp này sau đó sẽ được sử dụng làm nguồn thẻ để hiển thị hình ảnh vào trình duyệt.Nhận dữ liệu hình ảnh được lưu trữ với trường Blob MySQL trong cơ sở dữ liệu.Đặt loại nội dung làm hình ảnh [hình ảnh/jpg, hình ảnh/gif,Get image data stored with the MySQL BLOB field in the database. Set the content-type as image [image/jpg, image/gif, …]

Làm cách nào để phục hồi hình ảnh Blob?

Phương pháp GetBlob [] của PreparedStatement được sử dụng để có được thông tin nhị phân, nó trả về thể hiện của Blob.Sau khi gọi phương thức getBytes [] trên đối tượng Blob, chúng ta có thể nhận được mảng thông tin nhị phân có thể được ghi vào tệp hình ảnh.. After calling the getBytes[] method on the blob object, we can get the array of binary information that can be written into the image file.

Bài Viết Liên Quan

Chủ Đề