Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

getCharacterStream() 메서드를 사용하여 테이블에서 Clob 값을 검색하는 JDBC 예제를 작성하시겠습니까?

<시간/>

결과 집합 인터페이스는 데이터베이스의 테이블에서 clob 데이터 유형을 검색하기 위해 getClob()이라는 메서드를 제공합니다. 이 외에도 getCharacterStream()

이라는 메서드도 제공합니다.

getClob()과 마찬가지로 이 메서드는 열 인덱스를 나타내는 정수(또는 열 이름을 나타내는 문자열 값)도 받고 지정된 열에서 값을 검색합니다. 차이점은 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의 내용을 볼 수 있습니다.

getCharacterStream() 메서드를 사용하여 테이블에서 Clob 값을 검색하는 JDBC 예제를 작성하시겠습니까?