อ่านบทตัวอย่าง
ฟีเจอร์ "ลองอ่านก่อนยืม" ของ Metropolitan Public Library สามารถบันทึกบทตัวอย่างได้เรียบร้อยแล้ว ขั้นตอนต่อไปคือการพัฒนาฟังก์ชันดึงข้อมูล เพื่อให้ผู้ใช้บริการสามารถอ่านตัวอย่างเหล่านี้บนเว็บไซต์ของห้องสมุดได้
เนื่องจากบทตัวอย่างอาจมีอักขระนับพันตัว จึงใช้การสตรีมเพื่ออ่านข้อมูลอย่างมีประสิทธิภาพ แทนที่จะโหลดบททั้งหมดเข้าหน่วยความจำพร้อมกัน ให้อ่านทีละส่วนเล็กๆ โดยใช้ character buffer
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การคิวรีฐานข้อมูล PostgreSQL ด้วย Java
คำแนะนำการฝึกหัด
- อ่านกระแสข้อมูลจาก result set สำหรับคอลัมน์
sample_chapter - กำหนดขนาด buffer ให้อ่านครั้งละ 30 อักขระ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class Main {
public static void main(String[] args) throws SQLException, IOException, ClassNotFoundException {
HikariDataSource ds = HikariSetup.createDataSource();
String query = """
SELECT book_id, sample_chapter FROM book_content bc
""";
try (Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(query);
ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
// Read the stream from the result set
____ reader = rs.____("sample_chapter");
// Read the first 30 characters
char[] cb = new ____[____];
reader.read(cb);
System.out.printf("Book Id: %d, sample chapter: %s ...\n", rs.getInt("book_id"), new String(cb));
}
}
}
}