So verarbeiten Sie Blob-Daten in MySQL

So verarbeiten Sie Blob-Daten in MySQL

Der spezifische Code lautet wie folgt:

Paket epoint.mppdb_01.h3c;
importiere java.io.File;
importiere java.io.FileInputStream;
importiere java.io.FileOutputStream;
importiere java.io.InputStream;
importiere java.io.OutputStream;
importiere java.net.URI;
importiere java.sql.Blob;
importiere java.sql.Connection;
importiere java.sql.DriverManager;
importiere java.sql.ResultSet;
importiere java.sql.Statement;
importiere org.apache.commons.net.ftp.FTPClient;
importiere org.apache.commons.net.ftp.FTPReply;
importiere org.apache.hadoop.conf.Configuration;
importiere org.apache.hadoop.fs.FSDataInputStream;
importiere org.apache.hadoop.fs.FileSystem;
importiere org.apache.hadoop.fs.Path;
importiere org.apache.hadoop.io.IOUtils;
öffentliche Klasse MySQLblobToMPPphoto {
  //MySQL-Verbindung öffentliche statische Verbindung getMySQLConnection() löst Exception aus {
    Zeichenfolge MySQLDRIVER = "com.mysql.jdbc.Driver";
    Zeichenfolge MySQLURL = "jdbc:mysql://192.168.186.13:3306/bigdata_scene03_rktj";
    Zeichenfolge MySQLUSERNAME = "root";
    Zeichenfolge MySQLPASSWORD = "Gepoint";
    Verbindung MySQLconn = DriverManager.getConnection(MySQLURL, MySQLUSERNAME, MySQLPASSWORD);
    MySQLconn zurückgeben;
  }
  //MPP-Verbindung öffentliche statische Verbindung getMPPConnection() löst Exception aus {
    Zeichenfolge MPPDRIVER = "com.MPP.jdbc.Driver";
    Zeichenfolge MPPURL = "jdbc:MPP://192.168.186.14:5258/bigdata_scene03_rktj";
    Zeichenfolge MPPUSERNAME = "mpp";
    Zeichenfolge MPPPASSWORD = "h3c";
    Verbindung MPPconn = DriverManager.getConnection(MPPURL, MPPUSERNAME, MPPPASSWORD);
    MPPconn zurückgeben;
  }
  //
  öffentliche statische void getMySQLblobToHDFS() wirft Ausnahme {
    Verbindung conn = getMySQLConnection();
    Ergebnismenge rs = null;
    versuchen {
      String SQL = "Wählen Sie ROW_ID, Foto aus t_rk_baseinfo_blob, Limit 10";
      Anweisung prest = conn.prepareStatement(sql);
      rs = prest.executeQuery(sql);
      während (rs.next()) {
        : Die Zeilen-ID wird wie folgt zurückgegeben:
        Blob-Foto = rs.getBlob(2);
        System.out.println(row_id + " " + Foto);
        InputStream in = foto.getBinaryStream();
        OutputStream out = neuer FileOutputStream("H:/foto/" + row_id + ".jpg");
        int länge = 0;
        byte[] Puffer = neues Byte[1024];
        während ((Länge = in.read(Puffer)) != -1) {
          out.write(Puffer, 0, Länge);
        }
        hochladen("H:/foto/" + row_id + ".jpg");
      }
      prest.schließen();
      rs.schließen();
    } Fang (Ausnahme e) {
      e.printStackTrace();
    Endlich
      // Verbindung schließen if (conn != null) {
        versuchen {
          Verbindung schließen();
          Verbindung = null;
        } Fang (Ausnahme e) {
          e.printStackTrace();
        }
      }
    }
  }
  öffentliche statische void main(String[] args) wirft Exception {
    getMySQLblobToHDFS();
  }
  //HDFS-Anhang hochladen public static void upload(String uploadpath) throws Exception {
    Konfiguration conf = neue Konfiguration();
    URI uri = neue URI("hdfs://192.168.186.14:8020");
    Dateisystem fs = FileSystem.get(uri, conf, "HDFS");
    Pfad resP = neuer Pfad (Uploadpfad);
    Pfad destP = neuer Pfad("/Foto");
    wenn (!fs.exists(destP)) {
      fs.mkdirs(ZielP);
    }
    fs.copyFromLocalFile(resP, destP);
    fs.schließen();
    System.out.println("************************");
    System.out.println("Upload erfolgreich!");
  }
  //HDFS-Anhang herunterladen public static void download() throws Exception {
    Konfiguration conf = neue Konfiguration();
    Zeichenfolge Ziel = "hdfs://192.168.186.14:/photo/11.png";
    Zeichenfolge lokal = "D://11.png";
    Dateisystem fs = FileSystem.get(URI.create(dest), conf, "hdfs");
    FSDataInputStream fsdi = fs.open(neuer Pfad(Ziel));
    OutputStream-Ausgabe = neuer FileOutputStream (lokal);
    IOUtils.copyBytes(fsdi, Ausgabe, 4096, wahr);
    System.out.println("************************");
    System.out.println("Download erfolgreich!");
  }
}

Zusammenfassen

Oben ist die Blob-Datenverarbeitungsmethode in MySQL, die ich Ihnen vorgestellt habe. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Der Unterschied zwischen TEXT- und BLOB-Feldtypen in MySQL
  • MYSQL im Vergleich zu MSSQL lernen (IV) - BLOB-Datentyp
  • Lösung für das Problem des Einfügens von Daten in das Mysql-Longblob-Feld
  • Was ist Blob? Einführung in die MySQL-Blobgrößenkonfiguration
  • Der Mysql LONGBLOB-Typ speichert Binärdaten (Änderung + Debuggen + Sortieren)
  • Java implementiert das Einfügen von MySQL-Binärdateien, Blob-Typ, aufgetretene Probleme und Lösungen
  • PHP verwendet PDO, um große Datenmengen aus MySQL zu lesen

<<:  Tiefgreifendes Verständnis der Rolle von Vuex

>>:  Detaillierte Installation und Konfiguration von Subversion (SVN) unter Ubuntu

Artikel empfehlen

Detailliertes Tutorial zur Installation von Nginx auf CentOS8 (Bild und Text)

Nginx, ausgesprochen „Engine x“, ist ein Open Sou...

Docker-Installationstutorial: Erste Schritte (Anfängerausgabe)

Doccer-Einführung: Docker ist eine Container-bezo...

CentOS8 - bash: verstümmelte Zeichen und Lösungen

Diese Situation tritt normalerweise auf, weil das...

Vue verwendet OSS zum Hochladen von Bildern oder Anhängen

Verwenden Sie OSS, um Bilder oder Anhänge in ein ...

Der Unterschied zwischen clientWidth, offsetWidth, scrollWidth in JavaScript

1. Konzept Sie alle sind Attribute des Elements u...

Lösung für Überlauf: versteckter Fehler in CSS

Ursache des Fehlers Als ich heute ein Karussell s...

MySQL Flush-List und Flushing-Mechanismus für Dirty Pages

1. Überprüfung Der Pufferpool wird nach dem Start...

So verpacken Sie das Uniapp-Projekt als Desktop-Anwendung

Electron installieren cnpm installiere Electron -...

Beheben Sie den abnormalen Fehler beim Erstellen einer Vue-Umgebung mit Webpack

Inhaltsverzeichnis Konfigurieren Sie zuerst packa...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...

HTML-Tutorial: DOCTYPE-Abkürzung

Beim Schreiben von HTML-Code sollte die erste Zei...