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

เราจะแทรก/จัดเก็บไฟล์ลงในฐานข้อมูล MySQL โดยใช้ JDBC ได้อย่างไร


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

เราจะแทรก/จัดเก็บไฟล์ลงในฐานข้อมูล MySQL โดยใช้ JDBC ได้อย่างไร