MySQLでBLOBデータを処理する方法

MySQLでBLOBデータを処理する方法

具体的なコードは次のとおりです。

パッケージ epoint.mppdb_01.h3c;
java.io.File をインポートします。
java.io.FileInputStream をインポートします。
java.io.FileOutputStream をインポートします。
java.io.InputStream をインポートします。
java.io.OutputStream をインポートします。
java.net.URI をインポートします。
java.sql.Blob をインポートします。
java.sql.Connection をインポートします。
java.sql.DriverManager をインポートします。
java.sql.ResultSet をインポートします。
java.sql.Statement をインポートします。
org.apache.commons.net.ftp.FTPClient をインポートします。
org.apache.commons.net.ftp.FTPReply をインポートします。
org.apache.hadoop.conf.Configuration をインポートします。
org.apache.hadoop.fs.FSDataInputStream をインポートします。
org.apache.hadoop.fs.FileSystem をインポートします。
org.apache.hadoop.fs.Path をインポートします。
org.apache.hadoop.io.IOUtils をインポートします。
パブリッククラスMySQLblobToMPPphoto {
  //MySQL 接続 public static Connection getMySQLConnection() throws Exception {
    文字列 MySQLDRIVER = "com.mysql.jdbc.Driver";
    文字列 MySQLURL = "jdbc:mysql://192.168.186.13:3306/bigdata_scene03_rktj";
    文字列 MySQLUSERNAME = "root";
    文字列 MySQLPASSWORD = "Gepoint";
    接続 MySQLconn = DriverManager.getConnection(MySQLURL、MySQLUSERNAME、MySQLPASSWORD);
    MySQLconn を返します。
  }
  //MPP接続 public static Connection getMPPConnection() throws Exception {
    文字列 MPPDRIVER = "com.MPP.jdbc.Driver";
    文字列 MPPURL = "jdbc:MPP://192.168.186.14:5258/bigdata_scene03_rktj";
    文字列 MPPUSERNAME = "mpp";
    文字列 MPPPASSWORD = "h3c";
    接続 MPPconn = DriverManager.getConnection(MPPURL, MPPUSERNAME, MPPPASSWORD);
    MPPconn を返します。
  }
  //
  パブリック静的void getMySQLblobToHDFS()は例外をスローします{
    接続 conn = getMySQLConnection();
    結果セット rs = null;
    試す {
      文字列 sql = "ROW_ID、photo を t_rk_baseinfo_blob から制限 10 で選択します";
      ステートメント prest = conn.prepareStatement(sql);
      rs = prest.executeQuery(sql);
      (rs.next()) の間 {
        行IDを1にする
        ブロブ写真 = rs.getBlob(2);
        System.out.println(row_id + " " + 写真);
        入力ストリーム in = photo.getBinaryStream();
        出力ストリーム out = 新しい FileOutputStream("H:/photo/" + row_id + ".jpg");
        長さ = 0;
        byte[] buffer = 新しいbyte[1024];
        ((len = in.read(buffer)) != -1) の間 {
          out.write(バッファ、0、長さ);
        }
        アップロード("H:/photo/" + row_id + ".jpg");
      }
      プレストを閉じる();
      rs.close();
    } キャッチ (例外 e) {
      e.printStackTrace();
    ついに
      // 接続を閉じる if (conn != null) {
        試す {
          接続を閉じる();
          接続 = null;
        } キャッチ (例外 e) {
          e.printStackTrace();
        }
      }
    }
  }
  パブリック静的void main(String[] args)は例外をスローします{
    MySQL の Blob を HDFS に取得します。
  }
  //HDFS添付ファイルのアップロード public static void upload(String uploadpath) throws Exception {
    構成 conf = new Configuration();
    URI uri = 新しい URI("hdfs://192.168.186.14:8020");
    ファイルシステム fs = FileSystem.get(uri, conf, "HDFS");
    パス resP = new Path(uploadpath);
    パス destP = new Path("/photo");
    (!fs.exists(destP))の場合{
      fs.mkdirs(destP);
    }
    fs.copyFromLocalFile(resP, destP);
    fs.close();
    System.out.println("************************");
    System.out.println("アップロードに成功しました!");
  }
  //HDFS添付ファイルのダウンロード public static void download() throws Exception {
    構成 conf = new Configuration();
    文字列dest = "hdfs://192.168.186.14:/photo/11.png";
    文字列ローカル = "D://11.png";
    ファイルシステム fs = FileSystem.get(URI.create(dest), conf, "hdfs");
    FSDataInputStream fsdi = fs.open(新しいパス(dest));
    出力ストリーム output = new FileOutputStream(local);
    IOUtils.copyBytes(fsdi, 出力, 4096, true);
    System.out.println("************************");
    System.out.println("ダウンロードに成功しました!");
  }
}

要約する

上記は、私が紹介したMySQLでのBLOBデータ処理方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL の TEXT フィールドと BLOB フィールドの違い
  • MSSQL との比較による MYSQL の学習 (IV) - BLOB データ型
  • Mysql longblob フィールドにデータを挿入する際の問題の解決方法
  • BLOB とは何か? MySQL BLOB サイズ設定の概要
  • Mysql LONGBLOB型はバイナリデータを格納します(変更+デバッグ+ソート)
  • Java は MySQL バイナリ ファイルの挿入、BLOB タイプ、発生した問題と解決策を実装します
  • PHPはPDOを使用してMySQLから大量のデータを読み取ります

<<:  Vuexの役割についての深い理解

>>:  Ubuntu での Subversion (SVN) の詳細なインストールと設定

推薦する

MySQL トリガーの追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明しま...

IE6のmin-widthとmin-heightと互換性を持たせる簡単な方法

ウェブサイトがワイドスクリーンの場合、ブラウザ ウィンドウを左右にドラッグすると、ウェブサイトの幅が...

Docker メモリ監視とストレステストの方法

起動していたDockerコンテナはメモリを使い果たした状態になっており、再起動せずにコンテナのメモリ...

優れた Web UI ライブラリ/フレームワーク 10 選

1. ITミルツールキットIT Mill Toolkit は、リッチ Web アプリケーション用のウ...

MySQL 8.0.12 インストール設定方法とパスワード変更

この記事ではMySQL 8.0.12のインストールと設定方法を参考までに記録します。具体的な内容は以...

Angularプロジェクトにおける共有モジュールの実装の詳細な説明

目次1. 共有共通モジュール2. 共有マテリアルモジュール3. 共有確認ダイアログ1. 共有共通モジ...

Web デザイン リファレンス Firefox デフォルト スタイル

W3C は HTML の標準をいくつか確立していますが、ブラウザは独自の定義済みスタイルに従って W...

JS でカルーセル画像を実装するいくつかの方法

カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...

MySQL最適化ソリューション: スロークエリログを有効にする

目次序文スロークエリログの設定テスト付録: ログ解析ツール mysqldumpslow要約する序文こ...

Vue が Ref を使用してレベル間でコンポーネントを取得する手順

VueはRefを使用してレベル間でコンポーネントインスタンスを取得します例の紹介開発プロセスでは、レ...

Mysql Explainコマンドの使用と分析

mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...

Linux インストール MongoDB の起動と一般的な問題の解決

MongoDB のインストール プロセスと問題記録1. MongoDBのインストールMongoDBを...

Ubuntu にグラフィック ドライバーが正常にインストールされたかどうかを確認する方法

次のコマンドを実行します: glxinfo | grep レンダリング結果が「はい」の場合、グラフィ...

セマンティックタグを使用して、IE6、7、8と互換性のあるHTMLを記述します。

HTML5 では、ヘッダー、フッター、ナビゲーションなどのセマンティック タグが追加されているため...

nginx で Vue プロジェクトをデプロイする方法

今日は nginx サーバーを使用するのですが、vue プロジェクトをサーバーにデプロイする必要もあ...