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

JDBC를 사용하여 MySQL 데이터베이스에 파일을 어떻게 삽입/저장합니까?

<시간/>

일반적으로 파일의 내용은 Clob 아래에 저장됩니다. (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) MySQL 데이터베이스의 데이터 유형.

JDBC는 데이터베이스의 테이블에 파일 내용을 저장하기 위해 Clob 데이터 유형을 지원합니다.

setCharacterStream() PreparedStatement 메소드 인터페이스는 매개변수의 인덱스를 나타내는 정수와 매개변수로 Reader 개체를 받습니다.

그리고 지정된 판독기 개체(파일)의 내용을 지정된 인덱스의 매개변수(자리 표시자)에 대한 값으로 설정합니다.

매우 큰 텍스트 값을 보내야 할 때마다 이 방법을 사용할 수 있습니다.

JDBC를 사용하여 텍스트 파일 저장:

JDBC 프로그램을 사용하여 데이터베이스에 파일을 저장해야 하는 경우 아래와 같이 Clob(TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) 데이터 유형으로 테이블을 생성합니다.

CREATE TABLE Articles(Name VARCHAR(255), Article LONGTEXT);

이제 JDBC를 사용하여 데이터베이스에 연결하고 PreparedStatement를 준비합니다. 위에서 만든 테이블에 값을 삽입하려면:

String query = "INSERT INTO Tutorial(Name, Article) VALUES (?,?)";PreparedStatement pstmt = con.prepareStatement(query);

PreparedStatement 인터페이스의 setter 메서드를 사용하여 자리 표시자에 값을 설정하고 setCharacterStream()을 사용하여 Clob 데이터 유형 설정 값을 설정합니다. 방법.

예시

다음은 JDBC 프로그램을 사용하여 MySQL 데이터베이스에 filein을 삽입하는 방법을 보여주는 예제입니다. 여기에 값이 삽입된 Clob 데이터 유형이 있는 테이블이 생성되었습니다.

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingFileToDatabase {
   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 Articles(Name, Article) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "article1");
      FileReader reader = new FileReader("E:\\data\\article1.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "article2");
      reader = new FileReader("E:\\data\\article2.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "article3");
      reader = new FileReader("E:\\data\\article3.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      System.out.println("Data inserted......");
   }
}

출력

Connection established......
Data inserted......

MySQL 워크벤치를 사용하여 테이블의 내용을 html 파일, .csv 파일 텍스트 파일 등과 같은 다양한 파일로 내보낼 수 있습니다. HTTML 파일에 데이터를 삽입한 후 테이블의 내용을 내보내면 출력은 다음과 같습니다.

JDBC를 사용하여 MySQL 데이터베이스에 파일을 어떻게 삽입/저장합니까?