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値を表示しようとすると、挿入されたテキストデータが次のように表示されます。
-
Blobデータ型の値をテーブルに挿入するためのJDBCの例を記述しますか?
次の説明を含むMyTableという名前のテーブルがデータベースにすでに存在するとします。 +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | image | blob | YES |
-
getCharacterStream()メソッドを使用してテーブルからClob値を取得するJDBCの例を記述しますか?
ResultSet インターフェイスは、データベース内のテーブルからclobデータ型を取得するためのgetClob()という名前のメソッドを提供します。これに加えて、getCharacterStream()という名前のメソッドも提供します。 getClob()と同様に、このメソッドも列のインデックスを表す整数(または、列の名前を表すString値)を受け入れ、指定された列の値を取得します。違いは、getClob()メソッド(Clobオブジェクトを返す)とは異なり、このメソッドはReaderクラスのオブジェクトを返します。 例 次の説明を使用して、データベースにMyDataという名前のテー