MySQL にテキストと画像を保存する方法

MySQL にテキストと画像を保存する方法

Oracle の大きなテキスト データ型

Clob 長いテキスト型 (MySQL ではサポートされていないため、代わりにテキストが使用されます)
BLOBバイナリタイプ

MySQL データベース

テキスト 長いテキストタイプ TINYTEXT: 256 バイト
  テキスト: 65,535 バイト => ~64kb
  中テキスト: 16,777,215 バイト => ~16MB
  LONGTEXT: 4,294,967,295 バイト => ~4GB
BLOBバイナリタイプ

例えば:

テーブルを作成する

CREATE TABLEテスト(
   id INT 主キー AUTO_INCREMENT、
   content LONGTEXT, -- テキスト フィールド img LONGBLOB -- 画像フィールド);

テキストを保存する場合は文字型で保存し、画像を保存する場合はバイナリ型で保存します。パラメータの設定方法の具体的な方法は、データの取得方法とは異なります。

例えば:

// テキストを保存するときは、パラメータを文字ストリーム FileReader リーダーに設定します
pstmt.setCharacterStream(1, リーダー);
// パラメータを取得する場合 // 方法 1:
リーダー r = rs.getCharacterStream("content");
// 長いテキストデータを取得する、方法 2:
System.out.print(rs.getString("content"));
// バイナリ画像を保存する場合 // バイナリストリームInputStreamにパラメータを設定します 
pstmt.setBinaryStream(1, in);
// バイナリ ストリームを取得します。InputStream in = rs.getAsciiStream("img");
/**
 * 写真を保存* 
 */
@テスト
パブリックボイドtest2(){
  文字列 sql = "テスト(img) 値に挿入(?)";
  試す{
    接続 = JDBCUtil.getConnection();
    pstmt = con.prepareStatement(sql);
    // パラメータを設定する // テキストを取得する File file = new File("f:/a.jpg");
    InputStream in = 新しい FileInputStream(file);
    // パラメータをバイナリ ストリームに設定します pstmt.setBinaryStream(1, in);
    // SQL を実行する
    pstmt.executeUpdate();
    in.close();
  }catch (例外 e) {
    e.printStackTrace();
  }ついに{
    試す {
      JDBCUtil.close(con, pstmt);
    } キャッチ (例外 e) {
      // TODO 自動生成されたキャッチブロック
      e.printStackTrace();
    }
  }
}
/**
 * 写真を取得 * 
 */
@テスト
パブリックボイドtest3(){
  文字列 sql = "select * from test where id=?;";
  試す{
    接続 = JDBCUtil.getConnection();
    pstmt = con.prepareStatement(sql);
    // パラメータを設定する pstmt.setInt(1, 2);
    // クエリを実行 rs = pstmt.executeQuery();
    while(rs.next()){
      byte[] buff = 新しいbyte[1024];
      入力ストリーム in = rs.getAsciiStream("img");
      整数l=0;
      出力ストリーム out = 新しい FileOutputStream(新しい File("f:/1.jpg"));
      while((l=in.read(buff))!=-1){
        out.write(バッファ、0、l);
      }
      in.close();
      out.close();
    }
  }catch (例外 e) {
    e.printStackTrace();
  }ついに{
    試す {
      JDBCUtil.close(con, pstmt);
    } キャッチ (例外 e) {
      // TODO 自動生成されたキャッチブロック
      e.printStackTrace();
    }
  }
}

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQLはOracleシーケンスに似たソリューションを実装しています
  • シーケンス関数を実装する MySQL コード
  • ソケット ''/tmp/mysql.sock'' 経由でローカル MySQL に接続できない解決策
  • よく使用される MySQL 関数の完全なリスト (分類および要約)
  • MySQLのマスタースレーブ構成を使用して、読み取りと書き込みの分離を実現し、データベースの負荷を軽減します。
  • データベースの読み取りと書き込みの分離のコード構成を実現するmysql+spring+mybatis
  • MySQL サービスを完全に削除する方法 (レジストリをクリーンアップする)
  • MySQLデータベースに画像を保存するいくつかの方法
  • Ubuntu での mysql のインストールと使用 (一般版)
  • insert と select を組み合わせて、「データベース内のフィールドの最大値 + 1 を挿入する」メソッドを実装する

<<:  Windows で virtualenv を使用して仮想環境を作成する方法 (2 つの方法)

>>:  Vue で pdfjs を使用して PDF ファイルをプレビューする方法

推薦する

Firefox で Flash を再生するためのオブジェクトとパラメータの書き方

コードをコピーコードは次のとおりです。 <object classid="clsid...

MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

目次序文1. 概要2. 読み取りと書き込みの分離3. MySQL マスタースレーブレプリケーションの...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...

Reactにおける不変値の説明

目次不変の値とは何ですか?不変の値を使用するのはなぜですか? Reactのパフォーマンス最適化は不変...

MySQLクエリ文の実行プロセスの詳細な説明

目次1. クライアントとサーバー間の通信方法2. クエリキャッシュ3. クエリ最適化処理4. クエリ...

Zabbix上のすべてのホストのIPとホスト名を取得する

ザビックスZabbix ([`zæbiks]) は、WEB インターフェースに基づいて分散システム監...

JavaScript オブジェクトを作成する 3 つの方法

目次1. オブジェクトリテラル2. newキーワードはオブジェクトを作成する3. Object.cr...

React setStateデータ更新メカニズムの詳細な説明

目次setStateを使用する理由setStateの使用法非同期または同期更新要約するsetStat...

SQL 実践演習: オンライン モール データベース ユーザー情報データ操作

オンラインショッピングモールデータベース - ユーザー情報データ運用プロジェクトの説明電子商取引の台...

CentOS7仮想マシンで固定IPアドレスを設定する方法

私の開発環境は、VMWare 仮想マシンに CentOS をインストールし、ホスト ファイルにインタ...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...

HTML での select optgroup タグの使用の概要

時々、選択した内容をグループ化する必要があります。以前はプログラム制御を使用していました。今日、se...

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...

ハイパーリンクに関するいくつかの質問

<br />ポテトチップスパーティーのこのエピソードに参加して、何人かの友達に会えてとて...