Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

Insert/เก็บไฟล์ใน MySQL database ด้วย JDBC


โดยทั่วไป เนื้อหาไฟล์เก็บใน Clob (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) ใน MySQL

JDBC รองรับ Clob ด้วยเมธอด setCharacterStream() ของ PreparedStatement รับ index และ Reader object ตั้งค่า placeholder

ใช้เมื่อส่งข้อความขนาดใหญ่

เก็บไฟล์ text ด้วย JDBC

สร้างตารางมี Clob:

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

เตรียม PreparedStatement:

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

ตั้งค่า Clob ด้วย setCharacterStream():

FileReader reader = new FileReader("E:\\data\\article1.txt");
pstmt.setCharacterStream(2, reader);

ตัวอย่าง

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 {
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
        System.out.println("Connection established......");
        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......

Export ด้วย MySQL Workbench เป็น HTML จะได้ผลลัพธ์:

Insert/เก็บไฟล์ใน MySQL database ด้วย JDBC