ไฮเบอร์เนตกวดวิชาสำหรับผู้เริ่มต้น
เผยแพร่แล้ว: 2022-09-26Open-source Hibernate เป็นเฟรมเวิร์ก OOP Java ฟรีที่ใช้ในเว็บแอปพลิเคชันสำหรับการแมปโมเดลโดเมนเชิงวัตถุกับฐานข้อมูลเชิงสัมพันธ์
หนึ่งอาจใช้ HQL และ SQL เพื่อสืบค้นฐานข้อมูลและเปิดใช้งานการทำแผนที่เชิงวัตถุที่แข็งแกร่ง อย่างไรก็ตาม การใช้การทำแผนที่ ORM ใน Java ทำให้ง่ายขึ้นด้วย Hibernate ลดความซับซ้อนที่สำคัญในแอปพลิเคชันของคุณ และเป็นประโยชน์สำหรับผู้ที่มีความเข้าใจพื้นฐานเกี่ยวกับ SQL
ตรวจสอบหลักสูตรฟรีของเราที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์
สำรวจหลักสูตรฟรีสำหรับการพัฒนาซอฟต์แวร์ของเรา
พื้นฐานของการประมวลผลแบบคลาวด์ | พื้นฐาน JavaScript ตั้งแต่เริ่มต้น | โครงสร้างข้อมูลและอัลกอริทึม |
เทคโนโลยีบล็อคเชน | ตอบสนองสำหรับผู้เริ่มต้น | Core Java Basics |
Java | Node.js สำหรับผู้เริ่มต้น | JavaScript ขั้นสูง |
สถาปัตยกรรมของไฮเบอร์เนต
โดยทั่วไปการกำหนดค่าไฮเบอร์เนตจะถูกเก็บไว้ในส่วนคุณสมบัติหรือไฟล์ hibernate.cfg.xml เมื่อค้นหาการกำหนดค่า Java ให้มองหาคลาสที่มีหมายเหตุประกอบ @Configuration
ในการเริ่มทำงานกับแอปพลิเคชัน Java และฐานข้อมูล ให้เริ่มต้นด้วย Session Factory อ็อบเจ็กต์แสดงถึงคอลเล็กชันการแมปทั้งหมดระหว่าง Java Types ของแอปพลิเคชันและฐานข้อมูล SQL

โรงงานเซสชัน
แอปพลิเคชันผู้ใช้ใด ๆ อาจขอวัตถุเซสชันโดยติดต่อ Session Factory โรงงานเซสชันใช้ข้อมูลการกำหนดค่าที่รวมอยู่ในไฟล์เพื่อสร้างวัตถุเซสชัน การโต้ตอบของแอปพลิเคชันและฐานข้อมูลในช่วงเวลาต่างๆ จะรวมอยู่ในเซสชัน และคลาสเซสชันแสดงถึงสิ่งนี้
แบบสอบถาม
โปรแกรมแอปพลิเคชันอาจสืบค้นฐานข้อมูลสำหรับรายการที่เก็บไว้หนึ่งรายการขึ้นไปโดยใช้ภาษาที่ใช้สืบค้น Hibernate นำเสนอวิธีการที่หลากหลาย รวมถึง NamedQuery และ Criteria API เพื่อสืบค้นฐานข้อมูล
แคชระดับแรก
แคชที่ใช้โดยออบเจ็กต์ Hibernate Session ที่สื่อสารกับฐานข้อมูลในระดับแรกเรียกว่าแคชระดับแรกหรือที่เรียกว่าแคชของเซสชัน มีหน้าที่ในการแคชรายการในเซสชันปัจจุบัน ทุกคำขอจากวัตถุเซสชันไปยังฐานข้อมูลต้องเดินทางผ่านแคชระดับแรกหรือแคชเซสชันก่อนถึงฐานข้อมูล ดังนั้น จึงเป็นสิ่งสำคัญที่จะต้องสังเกตว่าแคชระดับแรกยังคงสามารถเข้าถึงได้ด้วยวัตถุเซสชันจนกว่าจะไม่มีการใช้งานอีกต่อไป
ธุรกรรม
ธุรกรรมช่วยให้สามารถสร้างความสอดคล้องของข้อมูลกับความสามารถในการย้อนกลับได้หากมีสิ่งผิดปกติเกิดขึ้น
วัตถุถาวร
อ็อบเจ็กต์ถาวรคืออ็อบเจ็กต์ Java ดั้งเดิม (POJO) ที่บันทึกในฐานข้อมูลเป็นแถวในตารางที่ลิงก์โดยเฟรมเวิร์ก Hibernate ไฟล์การกำหนดค่าไฮเบอร์เนตจะกำหนดค่าออบเจ็กต์เหล่านี้หรือทำเครื่องหมายด้วยคำอธิบายประกอบ @Entity
แคชระดับที่สอง
แคชระดับที่สองคอยติดตามสิ่งต่าง ๆ ในหลายเซสชัน เปิดใช้งานและระบุผู้ให้บริการแคชเพื่อใช้แคชระดับที่สอง ตัวอย่างเช่น EhCache เป็นผู้ให้บริการแคชระดับที่สองที่ได้รับความนิยมในหลายแอปพลิเคชัน
เรียนรู้หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
สำรวจหลักสูตรวิศวกรรมซอฟต์แวร์ยอดนิยมของเรา
วิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์จาก LJMU & IIITB | โปรแกรมใบรับรองความปลอดภัยทางไซเบอร์ของ Caltech CTME |
Bootcamp การพัฒนาเต็มกอง | โปรแกรม PG ใน Blockchain |
โปรแกรม Executive PG ในการพัฒนาแบบ Full Stack | |
ดูหลักสูตรทั้งหมดของเราด้านล่าง | |
หลักสูตรวิศวกรรมซอฟต์แวร์ |

ลักษณะสำคัญของกรอบไฮเบอร์เนต
ไฮเบอร์เนตเป็นเฟรมเวิร์กการแมปวัตถุโดเมน Java ที่ออกแบบมาเพื่อจัดการตารางฐานข้อมูล กรอบงานช่วยลดความยุ่งยากในการทำงานกับรายการฐานข้อมูลโดยใช้อ็อบเจ็กต์ Java แทนคำสั่ง SQL นอกจากนี้ การดูแลการจัดการธุรกรรม การสร้างคีย์หลักอัตโนมัติ การจัดการการเชื่อมต่อฐานข้อมูล และการใช้งานที่เกี่ยวข้องจะมีส่วนช่วยในกระบวนการพัฒนา
มาตรฐาน Java Persistence API (JPA) ได้รับการสนับสนุนโดยผู้ให้บริการ JPA Hibernate เป็นชุดของมาตรฐานในการเข้าถึง จัดเก็บ และจัดการข้อมูล สามารถใช้ประโยชน์จากอ็อบเจ็กต์ Java เพิ่มเติมและเชื่อมต่อกับเอนทิตีฐานข้อมูลเชิงสัมพันธ์เพื่อให้แน่ใจว่ารองรับ JPA อย่างสมบูรณ์
ประสิทธิภาพสูงและปรับขยายได้
แม้ว่าไฮเบอร์เนตจะเติบโตได้ในทุกสภาพแวดล้อม แต่ก็มีฟีเจอร์ที่ช่วยเพิ่มประสิทธิภาพมากมาย เช่น การล็อกในแง่ดี การเริ่มต้นแบบ Lazy และเทคนิคอื่นๆ
ง่ายต่อการติดตาม
เนื่องจากไฮเบอร์เนตไม่ต้องการโครงสร้างฐานข้อมูลหรือแอตทริบิวต์ที่กำหนดเอง การจัดการจึงอาจเป็นเรื่องยาก มันสร้าง SQL ในระหว่างการเริ่มต้นระบบ อย่างไรก็ตาม เมื่อเปรียบเทียบกับ JDBC แล้ว การดูแลรักษาจะง่ายกว่า
คลาสต่างๆ เช่น AnnotationConfiguration, ServiceRegistryBuilder และอื่นๆ เลิกใช้งานอย่างรวดเร็วในเวอร์ชันไฮเบอร์เนตก่อนหน้า
ทักษะการพัฒนาซอฟต์แวร์ตามความต้องการ
หลักสูตรจาวาสคริปต์ | หลักสูตร Core Java | หลักสูตร โครงสร้างข้อมูล |
หลักสูตร Node.js | หลักสูตร SQL | หลักสูตรการพัฒนาสแต็กเต็มรูปแบบ |
หลักสูตร NFT | หลักสูตร DevOps | หลักสูตรข้อมูลขนาดใหญ่ |
หลักสูตร React.js | หลักสูตรความปลอดภัยทางไซเบอร์ | หลักสูตรคอมพิวเตอร์คลาวด์ |
หลักสูตรการออกแบบฐานข้อมูล | หลักสูตร Python | หลักสูตร Cryptocurrency |
แนวคิดของหน่วยงาน ความเสมอภาค และอัตลักษณ์
ไฮเบอร์เนตเสนอแนวคิดเพิ่มเติมเพื่อเปรียบเทียบวัตถุหรือลักษณะเฉพาะเพื่อให้เป็นไปตามกฎเกณฑ์ทางธุรกิจที่แม่นยำ นอกจากความรู้ที่มีอยู่ก่อนแล้วเกี่ยวกับการตรวจสอบความเท่าเทียมกันในคอร์ Java แล้ว แนวคิดไฮเบอร์เนตก็มีความสำคัญไม่แพ้กันในการทำแผนที่
1. การแมปความสัมพันธ์ระหว่างเอนทิตีไฮเบอร์เนต
เมื่อมีการเชื่อมต่อและอ้างถึงเอนทิตีสองรายการแบบทิศทางเดียวหรือสองทิศทาง ให้ใช้คำอธิบายประกอบ JPA เพื่อใส่คำอธิบายประกอบคลาส Java และเปลี่ยนเป็นเอนทิตีถาวร อย่างไรก็ตาม ก่อนอื่น จำเป็นอย่างยิ่งที่จะต้องเข้าใจแนวคิดพื้นฐานบางประการก่อนที่จะสร้างการอ้างอิงระหว่างเอนทิตีไฮเบอร์เนต
2. ตัวตน/ความคงอยู่เป็นสองสิ่งที่แตกต่างกัน
อินสแตนซ์ออบเจ็กต์ที่แมปไฮเบอร์เนตมีสถานะหนึ่งในสี่สถานะ: ชั่วคราว ถาวร แยกออก หรือลบ ขึ้นอยู่กับสถานะของอินสแตนซ์ของออบเจ็กต์ที่เป็นปัญหา
3. ประเภท Cascade ใน Hibernate และ JPA
คุณสมบัติ “CascadeType” ใช้ในเอนทิตีเพื่อเปิดใช้งานเอฟเฟกต์แบบเรียงซ้อนและแบบผกผัน มีตัวเลือกการเรียงซ้อนหลายประเภทที่สามารถเข้าถึงได้ผ่าน CascadeType
อ่านบทความยอดนิยมของเราเกี่ยวกับการพัฒนาซอฟต์แวร์
วิธีการใช้ Data Abstraction ใน Java? | Inner Class ใน Java คืออะไร? | ตัวระบุ Java: คำจำกัดความ ไวยากรณ์ และตัวอย่าง |
ทำความเข้าใจการห่อหุ้มใน OOPS ด้วยตัวอย่าง | อาร์กิวเมนต์บรรทัดคำสั่งใน C อธิบาย | คุณสมบัติและลักษณะเด่น 10 อันดับแรกของคลาวด์คอมพิวติ้งในปี 2022 |
ความหลากหลายใน Java: แนวคิด ประเภท ลักษณะและตัวอย่าง | แพ็คเกจใน Java และวิธีใช้งาน | บทช่วยสอน Git สำหรับผู้เริ่มต้น: เรียนรู้ Git ตั้งแต่เริ่มต้น |
ข้อดีของคำอธิบายประกอบไฮเบอร์เนตกับการแมป
ก่อนคำอธิบายประกอบแบบอินไลน์ วิธีเดียวในการสร้างการแมปไฮเบอร์เนตคือไฟล์ XML แม้ว่าเครื่องมือต่างๆ จาก Hibernate และโปรเจ็กต์ของบริษัทอื่นจะเปิดใช้งานการผลิตการแมปอัตโนมัติจากซอร์ส Java แต่ก็ไม่เป็นเช่นนั้น
คำอธิบายประกอบเป็นการแมปที่กำหนดไว้ล่าสุดแต่ไม่ใช่การแมปที่มีประสิทธิภาพสูงสุด
ต่อไปนี้เป็นข้อดีบางประการของคำอธิบายประกอบแบบไฮเบอร์เนต (หรือแม่นยำกว่านั้นคือ JPA)
Hibernate Query Language [HQL] เป็นภาษาแบบสอบถามสำหรับ Hibernate
HQL แบ่งปันความคล้ายคลึงกันกับ SQL ภาษาคิวรีเชิงวัตถุ การดำเนินการกับวัตถุถาวรแทนที่จะเป็นตารางและคอลัมน์แสดงการทำงานของภาษาคิวรีที่มีประสิทธิภาพ
JPQL หรือ Java Persistence Query Language เป็น superset ดังนั้น การสืบค้น JPQL ที่ถูกต้องจึงถือเป็นการสืบค้น HQL ที่ดี อย่างไรก็ตาม การสืบค้น HQL ที่ถูกต้องทั้งหมดไม่ใช่การสืบค้น JPQL ที่ถูกต้อง และในทางกลับกัน
แบบสอบถามสำหรับเกณฑ์ไฮเบอร์เนต
การใช้ Criteria Query API ทำให้สามารถสร้างนิพจน์คิวรีแบบซ้อนและมีโครงสร้างใน Java ทำให้การตรวจสอบไวยากรณ์เวลาคอมไพล์ไม่สามารถทำได้ด้วยภาษาการสืบค้น เช่น HQL หรือ SQL นอกเหนือจากฟังก์ชันการสืบค้นตามตัวอย่าง (QBE) แล้ว Criteria API ยังมีคุณลักษณะอื่นๆ
ตัวอย่างเช่น การจัดหาอินสแตนซ์ของออบเจ็กต์ที่มีลักษณะที่ต้องการมากกว่าการอธิบายส่วนประกอบของการค้นหาของคุณทีละขั้นตอนอาจช่วยประหยัดเวลาและความพยายาม นอกจากนี้ยังมีเทคนิคสำหรับการฉายภาพและการรวม เช่น วิธีการนับ ()
การกำหนดค่าไฮเบอร์เนต EhCache
คุณลักษณะการแคชที่กำหนดโดยเฟรมเวิร์ก ORM ช่วยให้ผู้ใช้มีเว็บแอปพลิเคชันที่ทำงานได้อย่างรวดเร็ว ในขณะที่อนุญาตให้กรอบงานลดการสืบค้นที่ทำในฐานข้อมูลสำหรับธุรกรรมเดียว การแคชมีประโยชน์สำหรับผู้ใช้และกรอบงาน ไฮเบอร์เนตขยายการแคชทั้งที่ระดับที่หนึ่งและสองของลำดับชั้น

บทสรุป
ซอฟต์แวร์ไฮเบอร์เนตถือเป็นเฟรมเวิร์กที่ใช้งานได้สูงสำหรับ Java ทุกสิ่ง ในบทช่วยสอนจำศีลนี้ เราได้กล่าวถึงพื้นฐานของการใช้ไฮเบอร์เนต
หากคุณต้องการเรียนรู้เชิงลึกเกี่ยวกับเฟรมเวิร์ก Hibernate และเข้าใจ โฟลว์ แอปพลิเคชันแบบ end-to-end พื้นฐานที่เกิดขึ้นจากการผสานรวมกับเฟรมเวิร์ก Spring 3 เราขอแนะนำให้เข้าร่วม Executive PG Program ของ upGrad ใน Full Stack Development
หลักสูตรระยะเวลา 13 เดือนได้รับการออกแบบมาสำหรับนักพัฒนาซอฟต์แวร์ ผู้เชี่ยวชาญด้านไอที วิศวกร นักวิเคราะห์ ผู้เชี่ยวชาญด้านการสนับสนุนด้านเทคนิค และนักศึกษาใหม่ที่ต้องการพัฒนาพื้นฐานในพื้นฐานของวิทยาการคอมพิวเตอร์ การดำเนินการพัฒนาซอฟต์แวร์ การสร้างเว็บไซต์ที่ปรับขนาดได้ Backend API เป็นต้น
โปรแกรมนี้ประกอบด้วยเครื่องมือและภาษาในการเขียนโปรแกรมมากกว่า 10 ภาษา กรณีศึกษาและโครงการมากกว่า 7 รายการ หลักสูตรติวเข้ม และการเข้าถึง Data Science & Machine Learning
อย่ารอช้า สำรองที่นั่งได้แล้ววันนี้!
จะสร้าง SessionFactory ในเฟรมเวิร์กไฮเบอร์เนตได้อย่างไร
แอปพลิเคชันผู้ใช้ใด ๆ อาจขอวัตถุเซสชันโดยติดต่อ Session Factory Session Factory ใช้ข้อมูลการกำหนดค่าจากไฟล์เพื่อสร้างวัตถุเซสชันอย่างถูกต้อง
วิธีกำหนดค่า Hibernate Connection Pooling และ Caching?
โดยค่าเริ่มต้น ไฮเบอร์เนตจะใช้การเชื่อมต่อ JDBC เพื่อสื่อสารกับระบบฐานข้อมูล อย่างไรก็ตาม การสร้างการเชื่อมต่อเหล่านี้ใช้เวลานาน มีค่าใช้จ่ายสูง และน่าจะเป็นกิจกรรมเดียวที่แพงที่สุดที่ไฮเบอร์เนตจะทำในสถานการณ์การใช้งานทั่วไป เนื่องจากการจัดการการเชื่อมต่อ JDBC มีค่าใช้จ่ายสูง คุณอาจใช้กลุ่มการเชื่อมต่อ ซึ่งสร้างความสัมพันธ์ล่วงหน้า
คลาสถาวรใน Java คืออะไร?
คลาสใดๆ ที่ยึดตามแนวคิดเชิงวัตถุ เช่น การสืบทอดและความหลากหลาย อาจเป็นคลาสถาวรในแอปพลิเคชัน Java