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

เขียนตัวอย่าง JDBC เพื่อดึงค่า Clob จากตารางโดยใช้เมธอด getCharacterStream()?


ชุดผลลัพธ์ ส่วนต่อประสานให้วิธีการที่ชื่อ getClob() เพื่อดึงข้อมูลประเภท clob จากตารางในฐานข้อมูล นอกจากนี้ ยังมีวิธีการชื่อ getCharacterStream()

เช่นเดียวกับ getClob() เมธอดนี้ยังยอมรับจำนวนเต็มที่แสดงดัชนีของคอลัมน์ (หรือค่าสตริงที่แสดงชื่อของคอลัมน์) และดึงค่าที่คอลัมน์ที่ระบุ ความแตกต่างไม่เหมือนกับเมธอด getClob() (ซึ่งส่งคืนอ็อบเจ็กต์ Clob) เมธอดนี้ส่งคืนอ็อบเจ็กต์ของคลาส Reader

ตัวอย่าง

สมมติว่าเราได้สร้างตารางชื่อ MyData ในฐานข้อมูลโดยมีคำอธิบายดังต่อไปนี้

<ก่อนหน้า>+---------+--------------+------+----+-------- --------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+---------+--------------+------+----+--------- +-------+| ชื่อ | varchar(255) | ใช่ | | NULL | || บทความ | longtext | ใช่ | | NULL | |+---------+--------------+------+----+---------+ --------

และเราได้แทรกข้อมูลที่เป็นข้อความขนาดใหญ่ในนั้นด้วยชื่อ JavaFX โปรแกรมต่อไปนี้ดึงเนื้อหาของตาราง MyData โดยใช้เมธอด getString() และ getCharacterStream()

นำเข้า java.io.FileWriter;import java.io.Reader;import java.sql.Clob;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql คำสั่ง; คลาสสาธารณะ RetrievingClob_CharStream { โมฆะสาธารณะหลัก (สตริง args []) พ่นข้อยกเว้น { // การลงทะเบียนไดรเวอร์ DriverManager.registerDriver (ใหม่ com.mysql.jdbc.Driver ()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); //สร้างคำสั่งวัตถุงบ stmt =con.createStatement(); //ดึงข้อมูล ResultSet rs =stmt.executeQuery("select * from MyData"); int j =0; System.out.println("เนื้อหาของตารางคือ:"); ในขณะที่ (rs.next ()) { System.out.println (rs.getString ("ชื่อ")); Clob clob =rs.getClob("บทความ"); Reader r =clob.getCharacterStream(); สตริง filePath ="E:\\Data\\clob_output"+j+".txt"; FileWriter writer =FileWriter ใหม่ (filePath); int ฉัน; ในขณะที่ ((i=r.read())!=-1) { writer.write (i); } writer.close(); System.out.println(filePath); เจ++; } } }

ผลลัพธ์

เชื่อมต่อแล้ว......เนื้อหาของตาราง......JavaFXE:\Data\clob_output0.txt

หากคุณสังเกตไฟล์ในเส้นทางที่ได้รับ คุณจะเห็นเนื้อหาของ Clob ที่ดึงมาจากตารางดังที่แสดงด้านล่าง:

เขียนตัวอย่าง JDBC เพื่อดึงค่า Clob จากตารางโดยใช้เมธอด getCharacterStream()?