โดยทั่วไป เนื้อหาไฟล์เก็บใน 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 จะได้ผลลัพธ์:
