MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JDBCを使用してデータベースからファイルを取得するにはどうすればよいですか?


ResultSet インターフェイスは、 getClob()という名前のメソッドを提供します およびgetCharacterStream() Clobを取得するには データ型。通常、ファイルの内容が保存されます。

これらのメソッドは、列のインデックスを表す整数(または、列の名前を表す文字列値)を受け入れ、指定された列の値を取得します。

違いは、getClob()メソッドがClobオブジェクトを返し、getCgaracterStream()メソッドがClobデータ型のコンテンツを保持するReaderオブジェクトを返すことです。

次の説明を使用して、データベースにArticlesという名前のテーブルを作成したと仮定します。

+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| Name    | varchar(255) | YES  |     | NULL    |       |
| Article | longtext     | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

そして、以下に示すように、記事1、記事2、記事3という名前の3つの記事を挿入しました。

JDBCを使用してデータベースからファイルを取得するにはどうすればよいですか?

次のプログラムは、getString()メソッドとgetClob()メソッドを使用してArticlesテーブルの内容を取得し、指定されたファイルに保存します。

import java.io.FileWriter;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RetrievingFileFromDatabase {
   public static void main(String args[]) throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating aStatement
      Statement stmt = con.createStatement();
      //Retrieving the data
      ResultSet rs = stmt.executeQuery("select * from Articles");
      int j = 0;
      System.out.println("Contents of the table are: ");
      while(rs.next()) {
         System.out.println(rs.getString("Name"));
         Clob clob = rs.getClob("Article");
         Reader reader = clob.getCharacterStream();
         String filePath = "E:\\Data\\clob_output"+j+".txt";
         FileWriter writer = new FileWriter(filePath);
         int i;
         while ((i = reader.read())!=-1) {
            writer.write(i);
         }
         writer.close();
         System.out.println(filePath);
         j++;
      }
   }
}

出力

Connection established......
Contents of the table are:
article1
E:\Data\clob_output0.txt
article2
E:\Data\clob_output1.txt
article3
E:\Data\clob_output2.txt

  1. JDBCを使用してMySQLデータベースにファイルを挿入/保存するにはどうすればよいですか?

    通常、ファイルの内容は Clobに保存されます。 (TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)MySQLデータベースのデータ型。 JDBCは、ファイルの内容をデータベースのテーブルに格納するためのClobデータ型のサポートを提供します。 setCharacterStream() PreparedStatementのメソッド インターフェイスは、パラメータのインデックスを表す整数と、パラメータとしてReaderオブジェクトを受け入れます。 そして、指定されたリーダーオブジェクト(ファイル)の内容を、指定されたインデックスのパラメーター(プレースホルダー)の値と

  2. JSPを使用してファイルをアップロードするにはどうすればよいですか?

    JSPをHTMLフォームタグとともに使用して、ユーザーがファイルをサーバーにアップロードできるようにすることができます。アップロードされるファイルは、テキストファイル、バイナリ、画像ファイル、または任意のドキュメントです。 ファイルアップロードフォームの作成 ここで、ファイルアップロードフォームを作成する方法を理解しましょう。次のHTMLコードは、アップローダーフォームを作成します。以下は注意すべき重要なポイントです- フォームメソッド 属性はPOSTに設定する必要があります メソッドとGETメソッドは使用できません。 フォームenctype 属性はmultipart/ form