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

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


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

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

JDBCプログラムを使用してblobデータ型に値intを挿入する必要がある場合は、バイナリストリームデータを設定するメソッドを使用する必要があります。 PreparedStatementインターフェースは、画像をテーブルに挿入するための次のメソッドを提供します。

void setBinaryStream(int parameterIndex、InputStream x) メソッドは、指定された入力ストリーム(ファイルの終わりまで)のデータを、指定されたインデックスのパラメーターの値として設定します。

このメソッドの他のバリエーションは

です。
  • void setBinaryStream(int parameterIndex、InputStream x、int length)

  • void setBinaryStream(int parameterIndex、InputStream x、long length)

void setBlob(int parameterIndex、Blob x) メソッドは、指定されたblobオブジェクトを、指​​定されたインデックスのパラメーターの値として設定します。

このメソッドの他のバリエーションは

です。
  • void setBlob(int parameterIndex、InputStream inputStream)

  • void setBlob(int parameterIndex、InputStream inputStream、long length)

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

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

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class IndertingValueForBlob {
   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 MyTable(Name,image) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "sample_image");
      FileInputStream fin = new FileInputStream("E:\\images\\cat.jpg");
      pstmt.setBinaryStream(2, fin);
      pstmt.execute();
      System.out.println("Record inserted .....");
   }
}

出力

Connection established......
Record inserted ......

MySQLワークベンチを使用してレコード内のblob値を表示しようとすると、以下に示すように挿入された画像を確認できます。

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


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

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

  2. 二項係数テーブルのCプログラム

    正の整数値が与えられた場合、「val」としましょう。タスクは、二項係数B(n、k)の値を出力することです。ここで、nとkは、0からvalまでの任意の値であり、結果を表示します。 二項係数とは 二項係数(n、k)は、与えられた「n」の可能性から「k」の結果を選択する順序です。正のnとkの二項係数の値は次の式で与えられます $$ C_k ^ n =\ frac {n!} {(n-k)!k!} $$ =k 例 Input-: B(9,2) Output-: $$ B_2 ^ 9 =\ frac {9!} {(9-2)!2!} $$ $$ \ frac {9 \ times 8 \