เราอาจไม่รู้ตัว แต่ถ้าเราดูชีวิตประจำวันของเรา มันหมุนรอบแอปพลิเคชันหรือซอฟต์แวร์ต่างๆ สิ่งสำคัญคือต้องเข้าใจการใช้เฟรมเวิร์กต่างๆ สถาปัตยกรรมพื้นฐาน และฐานข้อมูลใดที่จะใช้สำหรับการจัดเก็บข้อมูลต่างๆ EJB และ Hibernate เป็นส่วนประกอบที่แตกต่างกันสำหรับวัตถุประสงค์ที่แตกต่างกันเมื่อเราสร้างแอปพลิเคชันหรือซอฟต์แวร์
EJB vs ไฮเบอร์เนต
ความแตกต่างระหว่าง EJB และ Hibernate คือ EJB เป็น Java Bean ชนิดหนึ่งและใช้เพื่อห่อหุ้มตรรกะทางธุรกิจของแอปพลิเคชัน java และการเชื่อมต่อกับฐานข้อมูลนั่นคือวิธีการเริ่มต้นในการเขียนแอปพลิเคชันระดับองค์กรในขณะที่
ไฮเบอร์เนตเป็นเฟรมเวิร์ก ORM ชนิดหนึ่งที่แมปคลาสหรืออ็อบเจ็กต์ที่มีอยู่ในแอปพลิเคชันกับตารางฐานข้อมูล เช่น วิธีดำเนินการและรักษาฐานข้อมูล
EJB หมายถึงประเภทของซอฟต์แวร์ฝั่งเซิร์ฟเวอร์ที่สรุปตรรกะในเชิงพาณิชย์สำหรับแอปพลิเคชันระดับองค์กร EJB คือเว็บคอนเทนเนอร์ที่สื่อสารกับ JVM (เครื่องเสมือน Java) อื่น ๆ ที่โฮสต์บนเซิร์ฟเวอร์ที่แตกต่างกัน กล่าวคือ เป็นวิธีการเริ่มต้นในการเขียนแอปพลิเคชันระดับองค์กร EJB แบบเต็มคือ java bean ขององค์กร เป็นคอนเทนเนอร์รันไทม์สำหรับ bean ที่ปรับใช้บนเซิร์ฟเวอร์เป็นหลัก เหตุนี้จึงเรียกอีกอย่างว่าส่วนประกอบฝั่งเซิร์ฟเวอร์
ไฮเบอร์เนตเป็นเฟรมเวิร์ก OMR ชนิดหนึ่งที่มีงานทำแผนที่ หากเห็นในรายละเอียด จะเกี่ยวข้องกับฐานข้อมูลเชิงสัมพันธ์ที่ทำแผนที่ของข้อมูล และการทำแผนที่นี้ทำได้โดยใช้ตารางของฐานข้อมูล นอกจากนี้ยังมีสิ่งอำนวยความสะดวกในการสืบค้นและดึงข้อมูลที่เกี่ยวข้องกับข้อมูล นอกจากนี้ยังเป็นประโยชน์ในการสร้างการโทร
ตารางเปรียบเทียบระหว่าง EJB และไฮเบอร์เนต
พารามิเตอร์ของการเปรียบเทียบ | EJB | ไฮเบอร์เนต |
คำนิยาม | Ejb สรุปตรรกะทางธุรกิจของแอปพลิเคชัน | ไฮเบอร์เนตแมปคลาสหรืออ็อบเจ็กต์กับตารางของฐานข้อมูล |
ความสัมพันธ์ของหน่วยงานสนับสนุน | รองรับ Entity-relationship ผ่านคำอธิบายประกอบ Java 5.0 | รองรับความสัมพันธ์ระหว่างเอนทิตีผ่านไฟล์การแมปและคำอธิบายประกอบใน JavaDoc |
การสนับสนุนการโทรกลับ | รองรับการโทรกลับผ่าน Entity Listener | รองรับการโทรกลับผ่านวงจรชีวิต interceptor |
คำอธิบายประกอบ | คำอธิบายประกอบ Java 5.0 ที่ใช้เพื่อรองรับการเขียนโปรแกรมเชิงแอตทริบิวต์ | คำอธิบายประกอบ XDoclet ใช้เพื่อสนับสนุนการเขียนโปรแกรมเชิงแอตทริบิวต์ |
แบบสอบถาม | EJB QL ใช้เพื่อแสดงแบบสอบถาม | HQL ใช้เพื่อแสดงแบบสอบถาม |
EJB คืออะไร?
EJB แบบเต็มคือ Enterprise Java Bean ซึ่งเป็นตัวย่อสำหรับมัน วัตถุประสงค์พื้นฐานของมันคือการปรับปรุงแอปพลิเคชันแบบกระจายที่ปลอดภัย แข็งแกร่ง และปรับขนาดได้ซึ่งจัดหาโดย Sun Microsystems หากต้องการใช้งาน คุณจะพบข้อมูลเกี่ยวกับสิ่งนี้ด้วยความช่วยเหลือของบทช่วยสอน RMI
ในการใช้แอปพลิเคชันนี้ จำเป็นต้องมีหลายอย่าง เช่น แอปพลิเคชันเซิร์ฟเวอร์ เช่น Jboss, Glassfish, Weblogic, Websphere เป็นต้น นี่คือวิธีการทำงาน:
กล่าวคือ งานทั้งหมดของแอปพลิเคชันนี้ขึ้นอยู่กับเซิร์ฟเวอร์ ดังนั้นชื่ออื่นของแอปพลิเคชันนี้จึงเป็นส่วนประกอบฝั่งเซิร์ฟเวอร์ด้วย
EJB หมายถึงประเภทของซอฟต์แวร์ฝั่งเซิร์ฟเวอร์ที่สรุปตรรกะในเชิงพาณิชย์สำหรับแอปพลิเคชันระดับองค์กร EJB คือเว็บคอนเทนเนอร์ที่ใช้กับฐานข้อมูล เช่น เป็นวิธีเริ่มต้นในการเขียนแอปพลิเคชันระดับองค์กร เป็นคอนเทนเนอร์รันไทม์สำหรับ bean ซึ่งส่วนใหญ่ปรับใช้โดยแอปพลิเคชันเซิร์ฟเวอร์
นอกจากนี้ยังมีช่วงเวลาที่ต้องใช้แอปพลิเคชันนี้ จำเป็นต้องมีการเข้าถึงระยะไกลเพื่อเรียกใช้แอปพลิเคชันนี้ ในอีกแง่หนึ่ง แอปพลิเคชันนี้มีการแจกจ่าย
ต่อจากนั้น ก็ควรจะสามารถปรับขนาดได้ เนื่องจากรองรับการทำโหลดบาลานซ์ การทำคลัสเตอร์ และเฟลโอเวอร์อย่างเต็มที่ นอกจากนี้ ยังต้องใช้ตรรกะทางธุรกิจที่ห่อหุ้ม และแอปพลิเคชันนี้แยกจากกันด้วยความช่วยเหลือของเลเยอร์การนำเสนอและการคงอยู่
ไฮเบอร์เนตคืออะไร?
Hibernate Object Relational Mapping (ORM) เป็นเครื่องมือการแมปวัตถุ โดยเฉพาะอย่างยิ่งสำหรับภาษาการเขียนโปรแกรม Java มีสถาปัตยกรรมพื้นฐานสำหรับการแมปคลาสหรือโมเดลเชิงวัตถุกับฐานข้อมูลเชิงสัมพันธ์ (RDBMS)
ช่วยลดความยุ่งยากในการพัฒนาแอปพลิเคชัน java เมื่อพูดถึงการโต้ตอบกับฐานข้อมูล Interna ใช้ JDBC API เพื่อโต้ตอบกับฐานข้อมูลที่บุคคลต้องดาวน์โหลดเป็น.exe ในเครื่อง
ไฮเบอร์เนตใช้ Java Persistence API หรือที่เรียกว่าข้อกำหนด JPA สำหรับการคงอยู่ของข้อมูล JPA เป็นข้อกำหนด Java ที่ให้ฟังก์ชันมาตรฐานและฟังก์ชันบางอย่างแก่เครื่องมือ ORM เช่น ไฮเบอร์เนต
มีข้อดีหลายประการของการใช้เฟรมเวิร์กไฮเบอร์เนต เช่น โอเพ่นซอร์ส และประสิทธิภาพที่รวดเร็วและน้ำหนักเบา เนื่องจากใช้แคชภายในและมีแคชสองระดับ
การใช้ HQL ไม่จำเป็นต้องเขียนการสืบค้นฐานข้อมูลเฉพาะ เนื่องจากจะสร้างการสืบค้นที่ไม่ขึ้นกับฐานข้อมูล และยังให้วิธีการตรวจสอบสถานะฐานข้อมูลและสถิตของการสืบค้น เช่น การสืบค้นที่ใช้เวลานานในการดำเนินการ ไฮเบอร์เนตให้วิธีอัตโนมัติในการสร้างตารางโดยทางโปรแกรม ดังนั้นจึงไม่จำเป็นต้องไปที่ฐานข้อมูลและสร้างตารางด้วยตนเอง
เปิดตัวในปี 2544 และกล่าวกันว่าต้นกำเนิดคือ Gowin King ที่เริ่มต้นด้วยความช่วยเหลือของ Entity Bean สไตล์ EJB2
ความแตกต่างหลักระหว่าง EJB และไฮเบอร์เนต
ปัจจัยที่แยกความแตกต่างระหว่างความสัมพันธ์ EJB และ Hibernate สามารถสรุปได้ดังนี้:
- Ejb สรุปตรรกะทางธุรกิจของแอปพลิเคชันและต้องการแอปพลิเคชันเซิร์ฟเวอร์เพื่อโฮสต์ในขณะที่ไฮเบอร์เนตแมปคลาสหรืออ็อบเจ็กต์กับตารางของฐานข้อมูล
- EJB รองรับ Entity-relationship ผ่านหมายเหตุประกอบ Java 5.0 ในขณะที่ Hibernate รองรับ Entity-relationship ผ่านไฟล์การแมปและหมายเหตุประกอบใน JavaDoc
- EJB รองรับการโทรกลับผ่าน Entity Listener ในขณะที่รองรับการโทรกลับผ่านวงจรชีวิตตัวดัก
- ใน EJB Java 5.0 Annotation นั้นใช้เพื่อรองรับ Attribute Oriented Programming ในขณะที่ XDoclet Annotation นั้นถูกใช้เพื่อรองรับ Attributed Oriented Programming
- ใน EJB QL ใช้เพื่อแสดงการสืบค้นฐานข้อมูลในขณะที่ In Hibernate HQL ใช้เพื่อแสดงการสืบค้นข้อมูล
บทสรุป
ดังที่เราเห็นทั้ง EJB และไฮเบอร์เนตเกี่ยวข้องกับการเขียนโปรแกรม Java และการสร้างซอฟต์แวร์หรือแอปพลิเคชัน แต่จุดประสงค์ของทั้งสถาปัตยกรรมหรือเฟรมเวิร์กนั้นแตกต่างกัน EJB เป็นหนึ่งใน Java API สำหรับการสร้างแอปพลิเคชันองค์กรแบบแยกส่วน ซึ่งจะสรุปตรรกะทางธุรกิจของ แอปพลิเคชันที่ต้องการโฮสต์บนแอปพลิเคชันเซิร์ฟเวอร์นั่นคือสาเหตุที่เรียกว่าส่วนประกอบฝั่งเซิร์ฟเวอร์ในขณะที่ไฮเบอร์เนตนั้นคล้ายกับ EJB ประเภทหนึ่งของ bean เช่นเอนทิตีบีน แต่มันเสื่อมราคาและไม่ได้ใช้งานอีกต่อไปไฮเบอร์เนตเป็นเครื่องมือ ORM ที่แมป โมเดลโดเมนไปยังตารางของฐานข้อมูลเชิงสัมพันธ์
อ้างอิง
- https://dl.acm.org/doi/abs/10.1145/583854.582443
- https://dl.acm.org/doi/abs/10.1145/503209.503259
- https://books.google.co.in/books?hl=th&lr=&id=bTwfHzMxtQcC&oi=fnd&pg=PA1&dq=what+is+hibernate+in+java&ots=DueZLkRLID&sig=wlYPPYfSUMZsl8pSh_X&redirs=GCHuvUPYfSUMZsl8pSh_X&red_es 20is%20จำศีล%20in%20java&f=false