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

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


通常、ファイルの内容は Clobに保存されます。 (TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)MySQLデータベースのデータ型。

JDBCは、ファイルの内容をデータベースのテーブルに格納するためのClobデータ型のサポートを提供します。

setCharacterStream() PreparedStatementのメソッド インターフェイスは、パラメータのインデックスを表す整数と、パラメータとしてReaderオブジェクトを受け入れます。

そして、指定されたリーダーオブジェクト(ファイル)の内容を、指定されたインデックスのパラメーター(プレースホルダー)の値として設定します。

非常に大きなテキスト値を送信する必要がある場合はいつでも、この方法を使用できます。

JDBCを使用したテキストファイルの保存:

JDBCプログラムを使用してデータベースにファイルを格納する必要がある場合は、以下に示すように、Clob(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)データ型のテーブルを作成します。

CREATE TABLE Articles(Name VARCHAR(255), Article LONGTEXT);

次に、JDBCを使用してデータベースに接続し、 PreparedStatementを準備します。 上記で作成したテーブルに値を挿入するには:

String query = "INSERT INTO Tutorial(Name, Article) VALUES (?,?)";PreparedStatement pstmt = con.prepareStatement(query);

PreparedStatementインターフェースのsetterメソッドを使用してプレースホルダーに値を設定し、 setCharacterStream()を使用してClobデータ型の設定値を設定します。 メソッド。

以下は、JDBCプログラムを使用してMySQLデータベースにfileinを挿入する方法を示す例です。ここでは、Clobデータ型を使用してテーブルを作成し、それに値を挿入しました。

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingFileToDatabase {
   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......");
      //Inserting values
      String query = "INSERT INTO Articles(Name, Article) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "article1");
      FileReader reader = new FileReader("E:\\data\\article1.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "article2");
      reader = new FileReader("E:\\data\\article2.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "article3");
      reader = new FileReader("E:\\data\\article3.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      System.out.println("Data inserted......");
   }
}

出力

Connection established......
Data inserted......

MySQLワークベンチを使用すると、テーブルの内容をhtmlファイル、.csvファイル、テキストファイルなどのさまざまなファイルにエクスポートできます。HTTMLファイルにデータを挿入した後にテーブルの内容をエクスポートすると、出力は次のようになります。

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


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

    ResultSet インターフェイスは、 getClob()という名前のメソッドを提供します およびgetCharacterStream() Clobを取得するには データ型。通常、ファイルの内容が保存されます。 これらのメソッドは、列のインデックスを表す整数(または、列の名前を表す文字列値)を受け入れ、指定された列の値を取得します。 違いは、getClob()メソッドがClobオブジェクトを返し、getCgaracterStream()メソッドがClobデータ型のコンテンツを保持するReaderオブジェクトを返すことです。 例 次の説明を使用して、データベースにArticlesとい

  2. Javaを使用してDATEをMySQL列の値に挿入するにはどうすればよいですか?

    このために、JavaのPreparedStatementを使用できます。まず、列の1つがDATE型のArrivalDateであるテーブルを作成しましょう- mysql> create table DemoTable(    PassengerId int,    PassengerName varchar(40),    ArrivalDate date ); Query OK, 0 rows affected (0.82 sec) 日付を挿入するためのJAVAコードは次のとおりです- import java.sql.Conn