โดยทั่วไป เนื้อหาของไฟล์จะถูกเก็บไว้ภายใต้ 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);
ตั้งค่าให้กับตัวยึดตำแหน่งโดยใช้เมธอด setter ของอินเทอร์เฟซ PreparedStatement และสำหรับการตั้งค่าประเภทข้อมูล Clob โดยใช้ setCharacterStream() วิธีการ
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างสาธิตวิธีการแทรกไฟล์ในฐานข้อมูล MySQL โดยใช้โปรแกรม JDBC ที่นี่เราได้สร้างตารางที่มีประเภทข้อมูล Clob แทรกค่าลงไป
<ก่อนหน้า> นำเข้า java.io.FileReader นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.PreparedStatement คลาสสาธารณะ InsertingFileToDatabase { โมฆะคงสาธารณะหลัก (สตริง args []) พ่นข้อยกเว้น { // การลงทะเบียนไดร์เวอร์ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); //การใส่ค่า String query ="INSERT INTO Articles(Name, Article) VALUES (?, ?)"; preparedStatement pstmt =con.prepareStatement (แบบสอบถาม); pstmt.setString(1, "บทความ 1"); โปรแกรมอ่าน FileReader =ใหม่ FileReader("E:\\data\\article1.txt"); pstmt.setCharacterStream(2, เครื่องอ่าน); pstmt.execute(); pstmt.setString(1, "ข้อ 2"); reader =new FileReader("E:\\data\\article2.txt"); pstmt.setCharacterStream(2, เครื่องอ่าน); pstmt.execute(); pstmt.setString(1, "บทความที่ 3"); reader =new FileReader("E:\\data\\article3.txt"); pstmt.setCharacterStream(2, เครื่องอ่าน); pstmt.execute(); System.out.println("ข้อมูลถูกแทรก......"); }}ผลลัพธ์
เชื่อมต่อแล้ว......แทรกข้อมูลแล้ว......
เมื่อใช้ MySQL workbench คุณสามารถส่งออกเนื้อหาของตารางไปยังไฟล์ต่างๆ เช่น ไฟล์ html, ไฟล์ .csv ไฟล์ข้อความ เป็นต้น หากคุณส่งออกเนื้อหาของตารางหลังจากแทรกข้อมูลไปยังไฟล์ HTML ผลลัพธ์จะออกมาดังนี้:พี>