ส่วนใหญ่จะสรุปไฮเบอร์เนตจากแง่มุมโหลต่อไปนี้รวมถึงวิธีการดึงข้อมูลของไฮเบอร์เนตสถานะของวัตถุในไฮเบอร์เนตกลยุทธ์การดึงสามครั้งของไฮเบอร์เนตซึ่งมีอยู่ในโอกาสที่ ORM แก้ปัญหาไม่ตรงกัน มรดกสืบทอดมรดกมรดกสามวิธีของความสัมพันธ์สรุปวิธีการค้นหา () ของเซสชันและความแตกต่างระหว่างอินเตอร์เฟสการสืบค้น ฯลฯ เนื้อหาเฉพาะมีดังนี้:
1 วิธีการค้นหาไฮเบอร์เนต
索การค้นหาไดอะแกรมวัตถุนำทาง (ตามวัตถุที่โหลดการนำทางไปยังวัตถุอื่น ๆ )
按การค้นหา oid (ดึงวัตถุตาม OID ของวัตถุ)
使用การดึงข้อมูล HQL (ใช้ภาษาแบบสอบถาม HQL ที่เน้นวัตถุ)
使用การค้นหา QBC (โดยใช้ QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC (QBC (QURIY) API) API) API) API) ) เพื่อดึงวัตถุ
索การดึง SQL ท้องถิ่น (คำสั่ง SQL Query โดยใช้ฐานข้อมูลท้องถิ่น)
รวมถึงวิธีการดึงข้อมูลของไฮเบอร์เนตสถานะของวัตถุในไฮเบอร์เนตกลยุทธ์การดึงสามประการของไฮเบอร์เนตซึ่งเป็นโอกาสที่จะใช้งานได้หรือไม่ปัญหาที่ ORM แก้ปัญหาไม่ตรงกัน พบ () วิธีการของเซสชัน () วิธีการเซสชันและบทสรุปของความแตกต่างในความแตกต่างระหว่างอินเตอร์เฟสการสืบค้น
T Transient: เพิ่งสร้างขึ้นด้วยคำสั่งใหม่ไม่ได้รับการยืนยันและไม่ได้อยู่ในแคชของเซสชัน วัตถุ Java ในสถานะชั่วคราวเรียกว่าวัตถุชั่วคราว
(ถาวร: มันคงอยู่และเพิ่มลงในแคชของเซสชัน วัตถุ Java ในสถานะถาวรเรียกว่าวัตถุถาวร
E Detached: มันยังคงอยู่ แต่ไม่ได้อยู่ในแคชของเซสชันอีกต่อไป วัตถุ Java ในสถานะอิสระเรียกว่าวัตถุฟรี
3 อะไรคือกลยุทธ์การดึงข้อมูลสามประการของไฮเบอร์เนตและโอกาสใดที่ใช้กับโอกาสใดบ้าง
Øการเรียกคืนทันที
ข้อดี: โปร่งใสอย่างสมบูรณ์กับแอปพลิเคชัน
ข้อเสีย: คำสั่งเลือกมีมากมาย
ใช้งานได้: ระดับคลาส
Øการดึงข้อมูลล่าช้า
ข้อดี: แอปพลิเคชันวัตถุใดที่โหลดเพื่อหลีกเลี่ยงการดำเนินการตามคำสั่งที่เลือกส่วนเกินและหลีกเลี่ยงวัตถุที่ไม่จำเป็นต้องโหลดบันทึกพื้นที่หน่วยความจำและปรับปรุงประสิทธิภาพการดึง
ข้อเสีย: หากแอปพลิเคชันคือการเข้าถึงอินสแตนซ์เอเจนต์ของสถานะการป้องกันจะต้องมั่นใจว่ามันได้รับการเริ่มต้นเมื่อมีความทนทาน
แอปพลิเคชัน: หนึ่ง -to -multiple หรือมากกว่าที่เกี่ยวข้อง แอปพลิเคชันไม่จำเป็นต้องเข้าถึงได้ทันทีหรือไม่เข้าถึงเลย
接การค้นหาการเชื่อมต่อซ้ายและภายนอกเร่งด่วน
ข้อดี: มันโปร่งใสอย่างสมบูรณ์กับแอปพลิเคชัน ด้วยการเชื่อมต่อภายนอกจำนวนคำสั่งที่เลือกมีขนาดเล็ก
ข้อเสีย: วัตถุที่อาจไม่สามารถเข้าถึงได้อาจโหลดได้ ประสิทธิภาพการค้นหาภาพการเชื่อมต่อตารางฐานข้อมูลที่ซับซ้อน
แอปพลิเคชัน: หนึ่ง -to -one หรือมากกว่าที่เกี่ยวข้อง แอปพลิเคชันจะต้องเข้าถึงทันที ระบบฐานข้อมูลมีประสิทธิภาพการเชื่อมต่อตารางที่ดี
4 ORM แก้ไขปัญหาของการไม่จับคู่ (ไม่ตรงกันระหว่างโมเดลโดเมนและโมเดลความสัมพันธ์)
向โมเดลโดเมนเป็นวัตถุ -มุ่งเน้นและโมเดลความสัมพันธ์เกี่ยวข้องกัน
แบบจำลองโดเมนมีความสัมพันธ์ในการสืบทอดและรูปแบบความสัมพันธ์ไม่สามารถแสดงถึงความสัมพันธ์ในการสืบทอดโดยตรง
มีความสัมพันธ์มากมายในโมเดลโดเมน多และในรูปแบบความสัมพันธ์ตารางการเชื่อมต่อใช้เพื่อแสดงถึงความสัมพันธ์ที่เกี่ยวข้องมากขึ้นเรื่อย ๆ
双โมเดลโดเมนมีความสัมพันธ์สองทาง
精โมเดลโดเมนส่งเสริมแบบจำลองขนาดอนุภาคละเอียดและโมเดลความสัมพันธ์สนับสนุนแบบจำลองขนาดหยาบ
5 การทำแผนที่ไฮเบอร์เนตใน 3 วิธีของความสัมพันธ์การสืบทอด
系ระบบการสืบทอดทั้งหมดใช้ตาราง (ลำดับชั้นของ Tableper)
张แต่ละ subclass มีตารางเก็บแอตทริบิวต์ที่ไม่ซ้ำกันของคลาสย่อย (subclass ตาราง)
张แต่ละคลาสเฉพาะ (Union-Subclass) บันทึกเป็นข้อมูลเต็มตารางข้อมูล (ตารางต่อคอนกรีต)
6 เซสชันค้นหาเมธอด () และความแตกต่างระหว่างอินเตอร์เฟสแบบสอบถาม
วิธีการค้นหา () ของคลาสเซสชันและอินเตอร์เฟสแบบสอบถามรองรับวิธีการดึงข้อมูล HQL ความแตกต่างระหว่างทั้งสองคืออดีตใช้วิธีการที่สะดวกสบายสำหรับคำสั่งการสืบค้น HQL อย่างง่าย อินเทอร์เฟซแบบสอบถามคืออินเตอร์เฟสแบบสอบถาม
7 การกำหนดค่าสมาคมไฮเบอร์เนต
หนึ่ง -on -one
ØØØØØสัปดาห์
ØØØØØสัปดาห์
8 อธิบายลักษณะของเซสชันสั้น ๆ
, ไม่ใช่เธรดที่ปลอดภัยดังนั้นเมื่อออกแบบสถาปัตยกรรมซอฟต์แวร์ควรหลีกเลี่ยงหลายเธรดเพื่อแบ่งปันอินสแตนซ์เซสชันเดียวกัน
实อินสแตนซ์เซสชันมีน้ำหนักเบา ซึ่งหมายความว่าวัตถุเซสชันสามารถสร้างหรือทำลายเป็นประจำในโปรแกรมเช่นการจัดสรรอินสแตนซ์เซสชันแยกต่างหากสำหรับลูกค้าแต่ละรายหรือจัดสรรอินสแตนซ์เซสชันแต่ละรายการสำหรับแต่ละหน่วยการทำงาน
ในเซสชันในแต่ละการดำเนินการฐานข้อมูลจะดำเนินการในการทำธุรกรรมเพื่อให้คุณสามารถแยกการดำเนินการที่แตกต่างกัน (แม้แต่อ่านเท่านั้น)
9 Hibernate ใช้ไฟล์ XML เพื่อกำหนดค่าวัตถุ-ข้อดีของการแมปความสัมพันธ์
ไฮเบอร์เนตไม่แทรกซึมเข้าไปในโมเดลโดเมนด้านบนหรือเจาะเข้าไปในโมเดลข้อมูลที่ต่ำกว่า นักพัฒนาซอฟต์แวร์สามารถออกแบบโมเดลโดเมนอย่างอิสระโดยไม่บังคับให้ปฏิบัติตามข้อกำหนดใด ๆ นักออกแบบฐานข้อมูลสามารถออกแบบแบบจำลองข้อมูลได้อย่างอิสระโดยไม่บังคับให้ปฏิบัติตามข้อกำหนดใด ๆ การทำแผนที่ความสัมพันธ์ของวัตถุไม่ได้ขึ้นอยู่กับรหัสโปรแกรมใด ๆ การบำรุงรักษาสะดวกยิ่งขึ้น
10 ฟังก์ชั่นของแคชของเซสชัน
库ลดความถี่ในการเข้าถึงฐานข้อมูล ความเร็วของแอปพลิเคชันจากหน่วยความจำจากหน่วยความจำนั้นเร็วกว่าความเร็วในการสอบถามข้อมูลในฐานข้อมูลดังนั้นแคชเซสชันสามารถปรับปรุงประสิทธิภาพของการเข้าถึงข้อมูล
对รับประกันได้ว่าวัตถุในแคชจะถูกซิงโครไนซ์กับระเบียนที่เกี่ยวข้องในฐานข้อมูล เมื่อสถานะของวัตถุถาวรในการเปลี่ยนแปลงแคชเซสชันจะไม่เรียกใช้คำสั่ง SQL ที่เกี่ยวข้องทันทีซึ่งช่วยให้เซสชันสามารถรวมคำสั่ง SQL ที่เกี่ยวข้องหลายรายการลงในคำสั่ง SQL เพื่อลดจำนวนฐานข้อมูลการเข้าถึงและเพิ่มโปรแกรมแอปพลิเคชันแอปพลิเคชัน ผลงาน.
11 ปัญหามากกว่ารันไทม์ของกิจการเพิ่มเติม
新การอัปเดตการสูญเสียประเภทแรก
การอ่านสกปรก
ØØØØØø/phantom reading
Øอย่าอ่านซ้ำ ๆ
新การอัปเดตการสูญเสียประเภทที่สอง
12 ความแตกต่างระหว่างการทำความสะอาดและความว่างเปล่าของเซสชั่น
case การทำความสะอาดเซสชันแคชหมายถึงการอัปเดตฐานข้อมูลแบบซิงโครนัสตามการเปลี่ยนแปลงในสถานะของแคช
S CLEAR คือเซสชันเพื่อล้างชิ้นส่วนหรือวัตถุทั้งหมดหรือเซสชัน;
13 หลักการทำงานของไฮเบอร์เนตและทำไม
หลัก
1. อ่านและวิเคราะห์ไฟล์การกำหนดค่า
2. อ่านและวิเคราะห์ข้อมูลการแมปสร้าง SessionFactory
3. เปิดเซสชัน
4. สร้างการส่งธุรกรรม
5. การดำเนินการถาวร
6. ส่งธุรกรรม
7. ปิดเซสชัน
8. ปิด SESSTION FACTORY
Øทำไมคุณถึงใช้
1. แพ็ครหัสของการเข้าถึงฐานข้อมูลของ JDBC ซึ่งทำให้รหัสซ้ำที่น่าเบื่อของเลเยอร์การเข้าถึงข้อมูลง่ายขึ้นอย่างมาก
2. ไฮเบอร์เนตเป็นกรอบหลักและการคงอยู่บนพื้นฐานของ JDBC และเป็นการใช้งาน ORM ที่ยอดเยี่ยม เขาลดความซับซ้อนของงานการเข้ารหัสของเลเยอร์ Dao
3. ไฮเบอร์เนตใช้กลไกการสะท้อน Java แทนโปรแกรมที่ปรับปรุงโดย Bytecode เพื่อให้เกิดความโปร่งใส
4. การแสดงของไฮเบอร์เนตนั้นดีมากเพราะเป็นกรอบที่มีน้ำหนักเบา ความยืดหยุ่นของการทำแผนที่นั้นยอดเยี่ยม รองรับฐานข้อมูลความสัมพันธ์ที่หลากหลายจากความสัมพันธ์ที่ซับซ้อนถึงหนึ่งถึงหนึ่งถึงหนึ่ง
14 โหลดความล่าช้าไฮเบอร์เนต
1. Hibernate2 การดำเนินการโหลดล่าช้า: a) Sport Object B) ประเภทคอลเลกชัน
2. Hibernate3 ให้ฟังก์ชั่นการโหลดล่าช้าของแอตทริบิวต์
เมื่อไฮเบอร์เนตสอบถามข้อมูลข้อมูลไม่มีอยู่และหน่วยความจำและเมื่อโปรแกรมทำงานจริงวัตถุจะมีอยู่และหน่วยความจำล่าช้า
15 กลไกแคชของไฮเบอร์เนต
1. แคชระดับแรกเรียกว่าแคชภายในไฮเบอร์เนตซึ่งเป็นของแคชคลาสธุรกรรมแอปพลิเคชัน
2. แคชระดับสอง -ระดับ
a) แอปพลิเคชันและแคช
b) แคชแบบกระจาย
เงื่อนไข: ข้อมูลจะไม่ถูกแก้ไขโดยบุคคลที่สามขนาดข้อมูลอยู่ในช่วงที่ยอมรับได้ความถี่การอัปเดตข้อมูลต่ำและข้อมูลเดียวกันมักใช้โดยระบบและข้อมูลที่ไม่สำคัญ
c) การรับรู้ของแคชที่สาม
16 เพิ่มประสิทธิภาพไฮเบอร์เนต
1. ใช้สองทางหนึ่ง -to -many การเชื่อมโยงอย่าใช้คู่หนึ่งคู่ -หนึ่งคู่
2. การใช้งานที่ยืดหยุ่นของหนึ่งทางหนึ่ง -ถึงความสัมพันธ์ที่หลากหลาย
3. ไม่มีใคร -หนึ่งคนแทนที่ด้วยคู่เพิ่มเติม
4. แคชวัตถุการกำหนดค่าไม่มีแคชคอลเลกชัน
5. หนึ่ง -to -multi -collection use bag, ชุดการใช้งานหลายตัวส่วนใหญ่
6. คลาสการสืบทอดใช้สำหรับหลายรัฐ
7. มีฟิลด์ตารางน้อยกว่าอย่ากลัวความสัมพันธ์ของตารางมีแคชระดับที่สองรองรับเอว
ข้างต้นเป็นบทสรุปของไฮเบอร์เนตซึ่งพบได้บ่อยในการสัมภาษณ์ Java หวังว่าจะช่วยเหลือทุกคน