getCharacterStream()メソッドを使用してテーブルからClob値を取得するJDBCの例を記述しますか?
ResultSet インターフェイスは、データベース内のテーブルからclobデータ型を取得するためのgetClob()という名前のメソッドを提供します。これに加えて、getCharacterStream()
という名前のメソッドも提供します。getClob()と同様に、このメソッドも列のインデックスを表す整数(または、列の名前を表すString値)を受け入れ、指定された列の値を取得します。違いは、getClob()メソッド(Clobオブジェクトを返す)とは異なり、このメソッドはReaderクラスのオブジェクトを返します。
例
次の説明を使用して、データベースにMyDataという名前のテーブルを作成したと仮定します。
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
また、JavaFXという名前の大きなテキストデータを挿入しました。次のプログラムは、getString()メソッドとgetCharacterStream()メソッドを使用してテーブルMyDataの内容を取得します。
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 RetrievingClob_CharStream { 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 a Statement object Statement stmt = con.createStatement(); //retrieving the data ResultSet rs = stmt.executeQuery("select * from MyData"); 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 r = clob.getCharacterStream(); String filePath = "E:\\Data\\clob_output"+j+".txt"; FileWriter writer = new FileWriter(filePath); int i; while ((i=r.read())!=-1) { writer.write(i); } writer.close(); System.out.println(filePath); j++; } } }
出力
Connection established...... Contents of the table...... JavaFX E:\Data\clob_output0.txt
取得したパスでファイルを観察すると、以下に示すように、テーブルから取得されたClobの内容を確認できます。
-
JDBCを使用してデータベースからファイルを取得するにはどうすればよいですか?
ResultSet インターフェイスは、 getClob()という名前のメソッドを提供します およびgetCharacterStream() Clobを取得するには データ型。通常、ファイルの内容が保存されます。 これらのメソッドは、列のインデックスを表す整数(または、列の名前を表す文字列値)を受け入れ、指定された列の値を取得します。 違いは、getClob()メソッドがClobオブジェクトを返し、getCgaracterStream()メソッドがClobデータ型のコンテンツを保持するReaderオブジェクトを返すことです。 例 次の説明を使用して、データベースにArticlesとい
-
Clobデータ型の値をテーブルに挿入するためのJDBCの例を記述しますか?
次の説明を含むMyDataという名前のテーブルがデータベースにすでに存在するとします。 +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtex