Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách chèn/lưu file vào MySQL database bằng JDBC?


Nội dung file thường lưu dưới kiểu Clob (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) trong MySQL.

JDBC hỗ trợ Clob, lưu nội dung file vào bảng database.

Phương thức setCharacterStream() của PreparedStatement nhận nguyên (chỉ số tham số) và Reader object, thiết lập nội dung reader (file) làm giá trị cho placeholder tại chỉ số đó. Dùng khi gửi text rất lớn.

Lưu file text bằng JDBC:

Tạo bảng với Clob datatype:

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

Kết nối JDBC, chuẩn bị PreparedStatement:

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

Thiết lập giá trị placeholder, với Clob dùng setCharacterStream().

Ví dụ

Ví dụ chèn file vào MySQL bằng JDBC. Tạo bảng Clob, chèn giá trị:

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 { 
        // Đăng ký Driver 
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        // Lấy kết nối 
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Kết nối thành công......"); 
        // Chèn giá trị 
        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("Dữ liệu đã chèn......"); 
    } 
}

Kết quả

Kết nối thành công...... 
Dữ liệu đã chèn......

Dùng MySQL Workbench export nội dung bảng ra file HTML, CSV, text. Xuất ra HTML sau khi chèn:

Cách chèn/lưu file vào MySQL database bằng JDBC?