ไฮเบอร์เนตกวดวิชาสำหรับผู้เริ่มต้น

เผยแพร่แล้ว: 2022-09-26

Open-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