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 ファイルをプレビューする方法

推薦する

HTML 固定タイトル列、タイトル ヘッダー テーブル固有の実装コード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQL テーブル削除操作の実装 (delete、truncate、drop の違い)

この記事では主に、MySQL でテーブルを削除する 3 つの操作、つまり delete ステートメン...

MySQLサーバーは--read-onlyオプションで実行されているため、このステートメントを実行できません

会議中に同僚から開発ライブラリを書き込めないとの報告を受けました。エラー メッセージは次のとおりでし...

Hadoop におけるネームノードとセカンダリネームノードの動作メカニズムの説明

1) プロセス 2) FSImageと編集NodeNode は HDFS の頭脳です。ファイルシステ...

Dockerでmongodbデータベースを使用するための実装コード

mongoイメージを取得する sudo docker pull mongo mongodbサービスを...

HTTP ヘッダー情報の解釈と分析 (詳細概要)

HTTP ヘッダーの説明1. Accept: Web サーバーに受け入れるメディア タイプを通知しま...

MySQL データベースの一般的な基本操作の分析 [データベースの作成、表示、変更、削除]

この記事では、例を使用して、MySQL データベースの一般的な基本操作について説明します。ご参考まで...

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

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

MySQLの基本操作を詳しく解説(第2部)

序文この記事には1. データベースのいくつかの主要な制約2. テーブル間の関係制約:主キー制約: 機...

CSS3 でクールなスライス画像カルーセル効果を実現

今日は、CSS を使用してクールな画像カルーセル コンポーネントを作成する方法を学びます。その原理は...

MySQLデータベースエンジンをInnoDBに変更する

PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...

Apache ソースコードのインストールと仮想ホストの設定に関する詳細なチュートリアル

ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...

MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...

Vue-Routerのインストールプロセスと原理の詳細

目次1. フロントエンドルーティングの実装原則2. vue-Routerの基本的な使い方2.1. イ...

ReactにおけるuseRefの具体的な使い方

React の経験がある人なら、コンポーネントインスタンスオブジェクトや DOM オブジェクトを取得...