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

推薦する

Angularの親子コンポーネント通信の詳細な説明

目次使用されるAPI簡単な例人.ts親コンポーネントサブコンポーネント効果要約する使用されるAPI ...

安全な構成のためにDockerでTLSを有効にする手順

序文以前、Docker の 2375 Remote API を有効にしていました。会社のセキュリティ...

リモート接続を許可するようにMySQLを変更する方法

MySQLリモート接続の問題に関しては、会社で働いているときに誰かのコンピュータに保存されているMy...

Vue プロジェクトのパッケージ化と最適化の実装手順

目次Vueプロジェクトのパッケージ化、起動、最適化Vueプロジェクトのパッケージ化プロジェクトホステ...

虫眼鏡の詳細のJavaScript実装

目次1. レンダリング2. 実施原則3. まとめ1. レンダリング 2. 実施原則幅と高さが等しい拡...

MySQLインスタンスクラッシュ事例の詳細な分析

[問題の説明]私たちの実稼働環境には、複数の MySQL サーバー (MySQL 5.6.21) の...

ラジオボタンと複数選択ボタンは画像を使用してスタイル設定されます

ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...

MySQL 8.0はJSONを扱えるようになりました

目次1. 概要2. JSON基本ツール3. JSONパス式4. JSONを検索して変更する序文:長い...

HTML ではスペースはどのように表現されますか (どのような意味ですか)?

Web 開発では、次のような文字によく遭遇します: &nbsp;これは実際には HTML が...

iframe を使用して Web ページに他の Web ページを埋め込む方法

iframe の使い方:コードをコピーコードは次のとおりです。 <DIV align=cent...

解決策 - BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 権限が不十分です

1) jdkファイルが保存されているフォルダパスを入力します私はここにいますusr/local/jd...

Vue+Router+Element でシンプルなナビゲーションバーを実装する

このプロジェクトでは、Vue+Router+Element の具体的なコードを共有して、シンプルなナ...

CSSテーマを簡単に切り替える方法の詳細な説明

最近、個人の Web サイトに非常にシンプルなカラー スキーム (テーマ) スイッチャーを追加しまし...

Centos 7にmysql5.7.24バイナリバージョンをインストールする方法と解決方法

MySQLバイナリのインストール方法mysqlをダウンロード参考: 1. パッケージを解凍する ta...

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...