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

Clobデータ型の値をテーブルに挿入するためのJDBCの例を記述しますか?


次の説明を含むMyDataという名前のテーブルがデータベースにすでに存在するとします。

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

JDBCプログラムを使用して値intをclobデータ型に挿入する必要がある場合は、ファイルの内容を読み取り、データベース行に設定するメソッドを使用する必要があります。 PreparedStatementインターフェースはそのようなメソッドを提供します。

void setCharacterStream(int parameterIndex、Reader reader) メソッドは、リーダーオブジェクトの内容を、指定されたインデックスのパラメーターの値として設定します。この方法の他の変形は次のとおりです:

  • void setCharacterStream(int parameterIndex、Reader reader、int length)

  • void setCharacterStream(int parameterIndex、Reader reader、long length)

void setClob(int parameterIndex、Clob x) メソッドは、指定されたjava.sql.Clobオブジェクトを、指​​定されたインデックスのパラメーターの値として設定します。この方法の他の変形は次のとおりです:

  • void setClob(int parameterIndex、Reader reader)

  • void setClob(int parameterIndex、Reader reader、long length)

これらの方法のいずれかを使用して、Clobデータ型に値を設定できます。

次の例では、setClob()メソッドを使用して値をClobデータ型に設定します。

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingValueInClob {
   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 MyData(Name, Article ) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "JavaFX");
      FileReader reader = new FileReader("E:\\images\\javafx.txt");
      pstmt.setClob(2, reader);
      pstmt.execute();
      System.out.println("Data inserted");
   }
}

出力

Connection established......
Table Created......
Contents of the table are:
JavaFX
E:\images\MyData_clob_output1.txt

MySQLワークベンチを使用してレコードのclob値を表示しようとすると、挿入されたテキストデータが次のように表示されます。

Clobデータ型の値をテーブルに挿入するためのJDBCの例を記述しますか?


  1. Blobデータ型の値をテーブルに挿入するためのJDBCの例を記述しますか?

    次の説明を含むMyTableという名前のテーブルがデータベースにすでに存在するとします。 +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | image | blob | YES |

  2. getCharacterStream()メソッドを使用してテーブルからClob値を取得するJDBCの例を記述しますか?

    ResultSet インターフェイスは、データベース内のテーブルからclobデータ型を取得するためのgetClob()という名前のメソッドを提供します。これに加えて、getCharacterStream()という名前のメソッドも提供します。 getClob()と同様に、このメソッドも列のインデックスを表す整数(または、列の名前を表すString値)を受け入れ、指定された列の値を取得します。違いは、getClob()メソッド(Clobオブジェクトを返す)とは異なり、このメソッドはReaderクラスのオブジェクトを返します。 例 次の説明を使用して、データベースにMyDataという名前のテー