Inhaltsverzeichnis
Blob in Datenbank speichern
Blobs aus der Datenbank abrufen
Beispiel
Ausgabe
Heim Datenbank MySQL-Tutorial Was ist der JDBC-Blob-Datentyp? Wie speichert und liest man die darin enthaltenen Daten?

Was ist der JDBC-Blob-Datentyp? Wie speichert und liest man die darin enthaltenen Daten?

Sep 14, 2023 pm 06:57 PM

什么是 JDBC Blob 数据类型?如何存储和读取其中的数据?

BLOB ist ein binäres großes Objekt, das eine variable Datenmenge mit einer maximalen Länge von 65535 Zeichen speichern kann.

Sie werden zum Speichern großer Mengen binärer Daten wie Bilder oder anderer Datentypen verwendet. dokumentieren. Als TEXT definierte Felder enthalten ebenfalls große Datenmengen. Der Unterschied zwischen beiden besteht darin, dass beim Sortieren und Vergleichen gespeicherter Daten in BLOBs die Groß-/Kleinschreibung beachtet wird, in TEXT-Feldern jedoch nicht. Sie haben die Länge nicht mit BLOB oder TEXT angegeben.

Blob in Datenbank speichern

Um den Blob-Datentyp in der Datenbank zu speichern, befolgen Sie die folgenden Schritte mit dem JDBC-Programm

Schritt 1: Mit der Datenbank verbinden

Sie können die Methode DriverManagergetConnection() verwenden, um eine Verbindung zur Datenbank herzustellen

indem Sie die MySQL-URL (jdbc:mysql://localhost/sampleDB) (wobei exampleDB der Datenbankname ist), den Benutzernamen und das Passwort als Parameter an die Methode getConnection() übergeben.

String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
Nach dem Login kopieren

Schritt 2: Erstellen Sie eine vorbereitete Anweisung

Verwenden Sie die Methode prepareStatement() der Schnittstelle Connection, um ein PreparedStatement-Objekt zu erstellen. Übergeben Sie die Einfügungsabfrage (mit Platzhaltern) als Parameter an diese Methode.

PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTableVALUES(?, ?)");
Nach dem Login kopieren

Schritt 3: Wert für den Platzhalter festlegen

Verwenden Sie die Setter-Methode der Schnittstelle PreparedStatement, um den Wert für den Platzhalter festzulegen. Wählen Sie eine Methode basierend auf dem Datentyp der Spalte. Wenn die Spalte beispielsweise vom Typ VARCHAR ist, verwenden Sie die Methode setString(); wenn die Spalte vom Typ INT ist, können Sie die Methode setInt() verwenden.

Wenn die Spalte vom Typ Blob ist, können Sie den Wert dafür mit der Methode setBinaryStream() oder setBlob() festlegen. Diesen Methoden werden eine Ganzzahlvariable, die den Parameterindex darstellt, und ein Objekt der InputStream-Klasse als Parameter übergeben.

pstmt.setString(1, "sample image");
//Inserting Blob type
InputStream in = new FileInputStream("E:\images\cat.jpg");
pstmt.setBlob(2, in);
Nach dem Login kopieren

Schritt 4: Anweisung ausführen

Verwenden Sie die Methode execute() der Schnittstelle PreparedStatement, um das oben erstellte PreparedStatement-Objekt auszuführen.

Blobs aus der Datenbank abrufen

Die getBlob()-Methode der ResultSet-Schnittstelle akzeptiert eine Ganzzahl, die den Index der Spalte darstellt (oder einen Zeichenfolgenwert, der den Spaltennamen darstellt), ruft den Wert der angegebenen Spalte ab und gibt ihn zurück die Form eines Blob-Objekts. Die

getBytes()

-Methode der

while(rs.next()) {
   rs.getString("Name");
   rs.getString("Type");
   Blob blob = rs.getBlob("Logo");
}
Nach dem Login kopieren
Blob-Schnittstelle ruft den Inhalt des aktuellen Blob-Objekts ab und gibt ihn als Byte-Array zurück.

Mit der Methode getBlob() können Sie den Inhalt des Blobs in ein Byte-Array übertragen und mit der Methode write() ein Bildobjekt FileOutputStream erstellen.

byte byteArray[] = blob.getBytes(1,(int)blob.length());
FileOutputStream outPutStream = new FileOutputStream("path");
outPutStream.write(byteArray);
Nach dem Login kopieren

Beispiel

Das folgende Beispiel erstellt eine Tabelle vom Blob-Datentyp in einer MySQL-Datenbank und fügt ein Bild darin ein. Rufen Sie es ab und speichern Sie es im lokalen Dateisystem.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class BlobExample {
   public static void main(String args[]) throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating a table
      Statement stmt = con.createStatement();
      stmt.execute("CREATE TABLE SampleTable( Name VARCHAR(255), Image BLOB)");
      System.out.println("Table Created");
      //Inserting values
      String query = "INSERT INTO SampleTable(Name,image) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "sample image");
      FileInputStream fin = new FileInputStream("E:\images\cat.jpg");
      pstmt.setBlob(2, fin);
      pstmt.execute();
      //Retrieving the data
      ResultSet rs = stmt.executeQuery("select * from SampleTable");
      int i = 1;
      System.out.println("Contents of the table are: ");
      while(rs.next()) {
         System.out.println(rs.getString("Name"));
         Blob blob = rs.getBlob("Image");
         byte byteArray[] = blob.getBytes(1,(int)blob.length());
         FileOutputStream outPutStream = new
         FileOutputStream("E:\images\blob_output"+i+".jpg");
         outPutStream.write(byteArray);
         System.out.println("E:\images\blob_output"+i+".jpg");
         System.out.println();
         i++;
      }
   }
}
Nach dem Login kopieren

Ausgabe

Connection established......
Table Created
Contents of the table are:
sample image
E:\images\blob_output1.jpg
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der JDBC-Blob-Datentyp? Wie speichert und liest man die darin enthaltenen Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Erläutern Sie InnoDB Volltext-Suchfunktionen. Erläutern Sie InnoDB Volltext-Suchfunktionen. Apr 02, 2025 pm 06:09 PM

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

Wie behandeln Sie große Datensätze in MySQL? Wie behandeln Sie große Datensätze in MySQL? Mar 21, 2025 pm 12:15 PM

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Mar 19, 2025 pm 03:52 PM

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

Erklären Sie verschiedene Arten von MySQL-Indizes (B-Tree, Hash, Volltext, räumlich). Erklären Sie verschiedene Arten von MySQL-Indizes (B-Tree, Hash, Volltext, räumlich). Apr 02, 2025 pm 07:05 PM

MySQL unterstützt vier Indextypen: B-Tree, Hash, Volltext und räumlich. 1.B-Tree-Index ist für die gleichwertige Suche, eine Bereichsabfrage und die Sortierung geeignet. 2. Hash -Index ist für gleichwertige Suche geeignet, unterstützt jedoch keine Abfrage und Sortierung von Bereichs. 3. Die Volltextindex wird für die Volltext-Suche verwendet und ist für die Verarbeitung großer Mengen an Textdaten geeignet. 4. Der räumliche Index wird für die Abfrage für Geospatial -Daten verwendet und ist für GIS -Anwendungen geeignet.

Wie erstellen Sie Indizes für JSON -Spalten? Wie erstellen Sie Indizes für JSON -Spalten? Mar 21, 2025 pm 12:13 PM

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

See all articles