ในบรรดาคุณสมบัติและการปรับปรุงใหม่มากมายที่จัดทำโดย Java SE 6 เป็นมูลค่าที่กล่าวถึงว่ารุ่น JDBC ที่ให้กลไกการเข้าถึงฐานข้อมูลสำหรับโปรแกรม Java ได้รับการอัพเกรดเป็น 4.0 รุ่นนี้ชื่อรหัสนี้โดย JSR-221 ให้กลไกการเขียนโค้ดที่สะดวกยิ่งขึ้นและความยืดหยุ่นและรองรับชนิดข้อมูลเพิ่มเติม
คุณสมบัติใหม่ของ JDBC 4.0 แบ่งออกเป็นสี่ประเภทต่อไปนี้:
1. การจัดการไดรเวอร์และการเชื่อมต่อ
2. การจัดการข้อยกเว้น
3. การสนับสนุนประเภทข้อมูล
4. การเปลี่ยนแปลง API
ข้างต้นไม่ใช่เนื้อหาสำคัญที่บทความนี้จะพูดถึง นี่คือวิธีการใช้ข้อมูลประเภท XML โดย JDBC4.0 รายละเอียดเฉพาะมีดังนี้:
หลังจากการเปิดตัว JDBC 4.0 คุณสมบัติหลายตัวละครได้รับความสนใจอย่างกว้างขวาง การอัปเดตที่สำคัญที่สุดคือการสนับสนุนประเภทข้อมูล XML (ประเภทข้อมูลนี้ถูกกำหนดไว้ในมาตรฐาน SQL2003 ล่าสุด) แน่นอนการบันทึกข้อมูล XML ในฐานข้อมูลและการอัปเดตข้อมูล XML ในแอปพลิเคชันไม่ใช่เทคโนโลยีใหม่ แต่นี่เป็นครั้งแรกที่ JDBC ได้จัดทำอินเทอร์เฟซการแมป (java.sql.sqlxml) และใช้อินเทอร์เฟซนี้เพื่อรองรับชนิดข้อมูล SQL/XML แน่นอนเพื่อตอบสนองความต้องการในการจัดการประเภทข้อมูล XML อินเทอร์เฟซอื่น ๆ เช่น java.sql.Connection และ java.sql.resultset ได้รับการปรับปรุง
ก่อนที่จะมีการเปิดตัวประเภทข้อมูลมาตรฐาน SQL2003 และ XML ผู้พัฒนาจะต้องบันทึกข้อมูล XML ในฟิลด์ BLOB, CLOB หรือประเภทข้อความ ตอนนี้ฐานข้อมูลกระแสหลักจำนวนมาก (เช่น SQL Server, Oracle และ DB2) ได้เพิ่มการสนับสนุนสำหรับประเภทข้อมูล XML แต่ก่อน JDBC4 แอปพลิเคชัน Java ยังคงต้องแปลงประเภทข้อมูล XML ในฐานข้อมูลเป็นประเภทข้อมูลที่รองรับโดย JDBC แต่ JDBC ใหม่สามารถผูก XML ผ่านอินเทอร์เฟซท้องถิ่นดังนั้นจึงง่ายขึ้นและมีประสิทธิภาพมากขึ้นในการประมวลผลข้อมูล XML ในฐานข้อมูลใด ๆ
ในบทความนี้เราจะแนะนำวิธีการใช้ JDBC4.0 เพื่อจัดการฟิลด์ประเภท XML (บันทึกและรับข้อมูล XML) และยกตัวอย่างสำหรับการอ้างอิงของผู้อ่าน
1. จัดเก็บและรับข้อมูล XML
เพื่อบันทึกข้อมูล XML ในฟิลด์ประเภท XML เราควรโทรหาวิธี java.sql.connection.createsqlxml () วิธีนี้ส่งคืนอินสแตนซ์ของ java.sql.sqlxml จากนั้นเราสามารถเพิ่มข้อมูล XML ลงในวัตถุ SQLXML ได้โดยเรียก SetOutputStream (), SetCharactersTream () หรือเพียงแค่เรียก SetString (String XML) ฟังก์ชั่นนี้ควรสังเกตว่ามีความคล้ายคลึงกับการใช้ blob และประเภท clob มาก
หนึ่งในคุณสมบัติที่สำคัญของ JDBC4.0 คือเรายังสามารถรับการใช้งานคลาสที่ตั้งค่า avax.xml.transform.result โดยการเรียกใช้วิธี setResult (คลาสผลลัพธ์) ของ java.sql.sqlxml คลาสเหล่านี้รวมถึง Domresult, Jaxbresult และ Saxresult กล่าวอีกนัยหนึ่งเราสามารถทำสิ่งต่อไปนี้ได้โดยไม่ต้องแปลง:
1. รับข้อมูล XML
2. สร้างวัตถุ Domresult อิสระ
3. ผ่าน domresult ไปยัง java.sql.sqlxml object
4. บันทึกข้อมูล XML ลงในฟิลด์ฐานข้อมูลตอบกลับโดยตรงผ่าน java.sql.statement
เพื่อให้ได้ข้อมูลประเภท SQLXML โดย java.sql.resultset เราจำเป็นต้องเรียก GetSqlxml และระบุชื่อฟิลด์หรือดัชนีที่เกี่ยวข้อง จากนั้นเราจะได้รับข้อมูล XML จริงจาก java.io.InputStream ผ่าน GetBinaryStream (), getCharactersTream () หรือ getString () หรือสตริงง่าย ๆ การบันทึกข้อมูล XML ยังได้รับข้อมูล XML ในทำนองเดียวกัน นอกจากนี้เรายังสามารถรับแหล่ง XML ได้โดยเรียกใช้วิธีการ GetSource (คลาส sourceclass) ของอินสแตนซ์วัตถุ SQLXML ดังนั้นเราสามารถเข้าถึงข้อมูล XML จากคลาสใดก็ได้ที่ใช้ javax.xml.transform.source
2. ตัวอย่างโปรแกรม
ตั้งแต่ JDBC4 ได้รับการปล่อยตัวอย่างเป็นทางการเมื่อวันที่ 11 ธันวาคม 2549 (เปิดตัวด้วย J2SE6.0) ตอนนี้ไดรเวอร์ฐานข้อมูลจำนวนมากไม่สนับสนุน JDBC4 เป็นอย่างดี ในตัวอย่างนี้มีการใช้ฐานข้อมูล Apache Derby เวอร์ชัน 10.2 เพื่อหารือเกี่ยวกับการจัดเก็บและการได้มาซึ่งข้อมูลประเภท XML Derby รุ่นนี้ยังไม่ถือ java.sql.sqlxml ซึ่งหมายความว่าเราไม่สามารถรับข้อมูล XML โดยตรงจากค่าผลลัพธ์และผูกข้อมูล XML แต่ดาร์บี้เข้ากันได้กับ SQL 2003 และสามารถใช้โหมดฝังได้ง่ายมากและยังสามารถสาธิตวิธีจัดการข้อมูล XML ราวกับว่าใช้ไดรเวอร์ที่รองรับ JDBC4 อย่างเต็มที่ รหัสที่ใช้ในการจัดการข้อมูล XML ของ Derby มีดังนี้:
นำเข้า java.io.stringReader; นำเข้า Java.sql.*; คลาสสาธารณะ Xmldbtester {สตริงสุดท้ายคงที่ xml1 = "<บทความ>"+"<title> บทความแรก </ชื่อเรื่อง>"+"<ผู้แต่ง> จอห์นสมิ ธ </ผู้เขียน>"+"<body> บทความสั้น ๆ บทความ </title> "+" <ผู้แต่ง> Mary Jones </Author> "+" <body> บทความสั้น ๆ อื่น ๆ </body> "+" </บทความ> "; สตริงสุดท้ายคงที่ XML3 =" <sartication> "+" <title> บทความที่สาม </title> " xml2, xml3}; โมฆะคงที่สาธารณะหลัก (สตริง s []) {xmldbtester xdt = ใหม่ xmldbtester (); การเชื่อมต่อ c = xdt.getconnection (); xdt.loaddemodata (c); xdt.demoxmlresult (c);ข้างต้นเป็นวิธีการใช้ JDBC4.0 เพื่อใช้งานข้อมูลประเภท XML ที่แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!