Cara membaca data gumpalan di mysql

BLOB adalah objek besar biner yang dapat menampung sejumlah variabel data. Berikut adalah beberapa poin tentang tipe data BLOB −

  • BLOB adalah keluarga tipe kolom yang dimaksudkan sebagai penyimpanan biner berkapasitas tinggi
  • Jenis kolom BLOB sebenarnya terdiri dari empat jenis-TINYBLOB, BLOB, MEDIUMBLOB dan LONGBLOB
  • Keempat jenis gumpalan sangat mirip satu sama lain;

Contoh - Contoh berikut menunjukkan cara mendeklarasikan kolom sebagai BLOB

mysql> Create table stock(ID INT, Name VARCHAR(40), PHOTO BLOB, Quantity INT);
Query OK, 0 rows affected (0.15 sec)

mysql> Describe stock;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID       | int(11)     | YES  |     | NULL    |       |
| Name     | varchar(40) | YES  |     | NULL    |       |
| PHOTO    | blob        | YES  |     | NULL    |       |
| Quantity | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.03 sec)

Cara membaca data gumpalan di mysql


Cara membaca data gumpalan di mysql

Kami akan menggunakan tabel

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
_2 di database sampel mysqljdbc. Demi demonstrasi, kami akan menambahkan satu kolom lagi bernama

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
3 ke dalam tabel

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
2. Jenis data kolom ini adalah 

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
5 yang dapat menampung hingga 16 MB

Pernyataan ALTER TABLE berikut menambahkan kolom resume ke tabel

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)
_

Kami akan menggunakan contoh resume dalam format PDF dan memuat file ini ke kolom

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
3 dari tabel

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
2 nanti. Anda dapat mendownload contoh file PDF untuk latihan melalui link berikut

Unduh John Doe Resume dalam format PDF

Langkah-langkah penulisan data BLOB ke dalam database MySQL adalah sebagai berikut

Pertama, buka koneksi baru ke database dengan membuat objek

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
9 baru

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
_

Kemudian, buat pernyataan UPDATE dan buat

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

Code language: Java (java)
0 dari objek

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)

Selanjutnya, baca data dari contoh file resume menggunakan

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

Code language: Java (java)
2 dan panggil metode

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

Code language: Java (java)
3 untuk mengatur parameter untuk

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)

Setelah itu, panggil metode

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

Code language: Java (java)
_5 dari objek

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

Code language: Java (java)
0

pstmt.executeUpdate();

Code language: Java (java)

Terakhir, tutup objek

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

Code language: Java (java)
0 dan

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
9 dengan memanggil metode

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

Code language: Java (java)
9

Untuk menyederhanakan proses pembuatan

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
_9, kami menggunakan kelas

// 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 yang kami kembangkan di tutorial sebelumnya untuk membuka koneksi baru. Contoh lengkap penulisan data BLOB ke dalam database MySQL adalah sebagai berikut

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)

Ayo jalankan programnya

Cara membaca data gumpalan di mysql
Cara membaca data gumpalan di mysql

Sekarang kita periksa tabel

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
_2 untuk kandidat dengan id 122

SELECT * FROM candidates WHERE id = 122;

Code language: SQL (Structured Query Language) (sql)
_
Cara membaca data gumpalan di mysql
Cara membaca data gumpalan di mysql

Seperti yang Anda lihat, kami memiliki data BLOB yang diperbarui di kolom resume tabel

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
2 untuk catatan dengan id 122.

Membaca data BLOB dari database MySQL

Proses pembacaan data BLOB dari database hampir sama dengan proses penulisan BLOB kecuali pada bagian kita menuliskan data BLOB ke dalam file

Pertama, buka koneksi baru ke database

Connection conn = MySQLJDBCUtil.getConnection(dbURL,username,password);

Code language: Java (java)

Kemudian, buat pernyataan SELECT dan buat

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

Code language: Java (java)
0 dari objek

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)

Selanjutnya, atur parameter dan jalankan kueri

pstmt.setInt(1, candidateId); ResultSet rs = pstmt.executeQuery();

Code language: Java (java)

Setelah itu, dapatkan data BLOB dari

// 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 dan tuliskan ke dalam file

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
_0

Terakhir, panggil metode 

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

Code language: Java (java)
_9 dari objek

// 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 dan

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
9. Jika Anda menggunakan pernyataan try-with-resources, Anda tidak perlu melakukannya secara eksplisit

Contoh berikut mengilustrasikan cara membaca data BLOB dari database MySQL

Connection conn = DriverManager.getConnection(url,username,password);

Code language: Java (java)
_1

Setelah menjalankan program, menjelajahi folder proyek, Anda akan melihat bahwa ada file baru bernama

pstmt.executeUpdate();

Code language: Java (java)
0 dibuat

Bagaimana cara melihat file BLOB di MySQL?

Lakukan tiga langkah. .
Pergi ke "Preferensi WorkBench" -> Pilih "Editor SQL" Di bawah "Hasil Kueri". centang "Perlakukan BINARY/VARBINARY sebagai string karakter non-biner"
Mulai ulang MySQL WorkBench
Now select SELECT SUBSTRING(,1,2500) FROM ;.

Bagaimana cara membaca BLOB di SQL?

Data BLOB dapat dibaca. Aplikasi .NET dengan menggunakan kelas SqlDataReader . Metode GetBytes() dari SqlDataReader memungkinkan Anda membaca potongan data biner dari kolom. Saat menulis data biner kembali ke database, server SQL.

Bagaimana cara melihat data BLOB?

Anda dapat mengonversi string Anda menjadi Uint8Array untuk mendapatkan data mentah. Kemudian buat Blob untuk data itu dan teruskan ke URL. createObjectURL(blob) untuk mengonversi Blob menjadi URL yang Anda teruskan ke img. src

Bagaimana cara mengonversi data BLOB ke format yang dapat dibaca?

Ikuti langkah-langkah ini. .
Ubah tabel dan tambahkan kolom yang memiliki tipe data TEXT
Tambahkan konten ke kolom itu setelah mengonversi data BLOB ke tanggal TEXT
Jatuhkan kolom BLOB