ไฮเบอร์เนตคืออะไรและมีประโยชน์กี่อย่างฉันเชื่อว่าผู้ที่ค้นหาโพสต์บล็อกดังกล่าวรู้ดังนั้นฉันจะไม่พูดอะไรมาก ด้านล่างนี้เป็นบทสรุปเล็ก ๆ น้อย ๆ ของการใช้ไฮเบอร์เนตอย่างง่าย ๆ ของฉัน มาแบ่งปันกับคุณ (ส่วนใหญ่เพิ่งเริ่มต้น)!
นี่เป็นเพียงการกำหนดค่าของแพ็คเกจ JAR ที่จำเป็นที่กล่าวถึงข้างต้นสำหรับเส้นทางที่เกี่ยวข้อง ที่นี่ฉันกำลังสร้าง Userlibrary ของตัวเองด้วยแพ็คเกจ JAR ที่ต้องการโดยโครงการ Hibernate Basic สิ่งนี้จะอำนวยความสะดวกในการนำเข้าของคุณเองตามต้องการ อย่างไรก็ตามควรสังเกตว่าเสมียนของเอกสารเหล่านั้นต่อจากนี้จะต้องไม่เปลี่ยนแปลงตามความประสงค์ไม่เช่นนั้นคราสอาจไม่พบ และ JDBC Jar ของ MySQL อย่าลืม นอกจากนี้ Junit ยังเป็นสิ่งจำเป็นสำหรับการดีบัก
ขั้นตอนที่ 1: เมื่อ Hibernate-Tools ไม่ได้สร้างเอกสาร DTD ที่จำเป็นสำหรับไฟล์การกำหนดค่าโดยอัตโนมัติเราต้องเพิ่มด้วยตนเอง ตัวอย่างเช่น
Hibernate-release-4.2.4.final/project/hibernate-core/src/main/resources/org/hibernate/hibernate-mapping-3.0.dtd
คลิกขวาที่ไดเรกทอรี SRC ของโครงการจากนั้นใช้ปลั๊กอินไฮเบอร์เนตแล้วคลิกไฟล์การกำหนดค่าไฮเบอร์เนต (cfg.xml) เพียงเลือกค่าเริ่มต้น
ขั้นตอนที่ 2: สร้างไฟล์กำหนดค่าไฮเบอร์เนต:
ตราบใดที่คุณเชื่อมต่อกับฐานข้อมูล MySQL คุณจะรู้ความหมายของฟิลด์เหล่านี้และไม่ได้อธิบายมากเกินไป
<property name = "connection.username"> root </property> <property name = "การเชื่อมต่อ password"> mysql </property> <property name = "connection.driver_class"> com.mysql.jdbc.driver </property> <property = "connection.url"> jdbc: name = "connection.dialect"> org.hibernate.dialect.mysqldialect </porement>
ให้ฉันยกตัวอย่างเล็ก ๆ น้อย ๆ ให้คุณ ดังนี้:
นำเข้า java.util.date;/** * ชั้นเรียนของนักเรียนหลักการออกแบบจะต้องปฏิบัติตามหลักการออกแบบของ Javabean * * 1. ชั้นเรียนทั่วไป 2. คุณลักษณะส่วนตัว 3. การห่อหุ้มคุณลักษณะโดยใช้ Setters และ Getters 4 นักเรียน () {} สตริงสาธารณะ getSname () {return sname;} void public setsname (String sname) {this.sname = sname;} public int getsid () {return sid;} public void setsid (int sid) {this.sid = sid; วันเกิด;} สตริงสาธารณะ getGender () {return gender;} public void setGender (เพศสตริง) {this.gender = เพศ;} สตริงสาธารณะ getAdress () {ที่อยู่ส่งคืน;} โมฆะสาธารณะ setadress (ที่อยู่สตริง) sid; this.birthday = วันเกิด; this.gender = gender; this.adress = ที่อยู่;}@แทนที่สตริงสาธารณะ toString () {return "นักเรียน [sname =" + sname + ", sid =" + sid + ", วันเกิด =" + วันเกิด + ", เพศ =" + เพศ + ", ที่อยู่ ="ใช้ปลั๊กอินเพื่อช่วยเราสร้าง คลิกขวาในไดเรกทอรี SRC, New-Hibernate, เลือกไฟล์การแมป Hibernate XML File (HBM.XML) ค้นหาคลาสนักเรียนที่เราต้องการแมปจากนั้นเลือกไฟล์เริ่มต้น
จากนั้นเพิ่มแท็กการแมปไปยังไฟล์ hibernate.cfg.xml ที่คุณเพิ่งสร้าง ดังนี้
<mapping resource = "students.hbm.xml" />
ที่นี่ฉันใช้ซอฟต์แวร์ NAVACAT เพื่อสร้างฐานข้อมูลใหม่พร้อมชุดอักขระ UTF-8 ชื่อคือไฮเบอร์เนต
- ทดสอบกับ Junit:
- @Test คำอธิบายประกอบ: มันบ่งชี้ว่านี่เป็นวิธีการทดสอบโดยทั่วไปวิธีการเป็นโมฆะโยนข้อยกเว้นโดยไม่มีพารามิเตอร์
- @Before Annotation: ระบุว่านี่เป็นวิธีการเริ่มต้นที่ใช้ในการเริ่มต้นข้อมูลบางอย่าง
- @after Annotation: มันบ่งชี้ว่านี่เป็นวิธีการปล่อยทรัพยากรสำหรับงานสุดท้าย
คลิกชื่อโครงการและคลิกขวาเพื่อเลือกสร้างโฟลเดอร์ต้นทาง สำหรับการทดสอบของเรา ของฉันคือการทดสอบ จากนั้นสร้างคลาสทดสอบใหม่ สิ่งที่เราต้องทดสอบที่นี่คือชั้นเรียนนักเรียนของเราดังนั้นเพียงสร้างนักเรียน
สามารถดูรหัสต่อไปนี้ได้:
นำเข้า java.util.date; นำเข้า org.hibernate.session; นำเข้า org.hibernate.sessionfactory; นำเข้า org.hibernate.transaction; นำเข้า org.hibernate.cfg.configuration; org.junit.fter; นำเข้า org.junit.before; นำเข้า org.junit.test; นักศึกษาระดับสาธารณะ {ส่วนตัวเซสชัน factory sessionfactory; เซสชั่นส่วนตัวเซสชันการทำธุรกรรมส่วนตัวธุรกรรม; @before public void init () {// สร้างวัตถุกำหนดค่าการกำหนดค่าการกำหนดค่า ServiceregistryBuilder (). AppLySettings (config.getProperties ()) .buildServiceRegistry (); // สร้างวัตถุโรงงานเคมี SessionFactory = config.buildsessionFactory (serviceregister); Testsavestudents () {นักเรียน s = นักเรียนใหม่ (1, "จางซาน", "ชาย", วันที่ใหม่ (), "dlut"); // บันทึกวัตถุลงในฐานข้อมูลเซสชั่นเซสชัน Save (s);}@หลังจากที่สาธารณะ ในที่สุดฉันก็คลิกที่วิธีการทดสอบและพบข้อผิดพลาด คือ org.hibernate.mappingexception: เอนทิตีที่ไม่รู้จัก: นักเรียน
จากนั้นฉันดูไฟล์ hibernate.cfg.xml และพบว่าทุกอย่างในฐานข้อมูลถูกต้อง ถูกต้อง
ฉันไม่สามารถคิดออกแล้วตรวจสอบข้อผิดพลาดที่คล้ายกันบนอินเทอร์เน็ต ฉันไม่พบวิธีแก้ปัญหาที่ถูกต้องและในที่สุดฉันก็มีแรงบันดาลใจจากแฟลชมันต้องเป็นเพราะไฟล์การแมปผิด แล้วมันคืออันไหน? ตรวจสอบทีละคน จากนั้นฉันก็พบแหล่งที่มาของข้อผิดพลาดไม่ใช่ข้อผิดพลาดของ student.hbm.xml แต่แท็กที่ฉันลืมเพิ่มการแมปใน hibernate.cfg.xml ฮ่า. คราวนี้ฉันวิ่งอีกครั้งและมันก็ประสบความสำเร็จ
การเรนเดอร์มีดังนี้:
บทความนี้เหมาะสำหรับรองเท้าเด็กไฮเบอร์เนตที่เพิ่งเริ่มต้นใช้งานดังนั้นจึงไม่มีการกำหนดค่าที่ซับซ้อนมากและการรักษาเพิ่มเติมอื่น ๆ เพื่อความเรียบง่าย
สิ่งนี้ใช้ปลั๊กอิน Hibernate-Tools ซึ่งช่วยให้เราทำงานได้มาก เป็นเรื่องง่ายที่จะประหยัดปัญหาและความกังวล ฉันแนะนำให้ติดตั้ง JBoss ซึ่งมีหลายสิ่งหลายอย่าง
ข้างต้นเป็นคำอธิบายโดยละเอียดทั้งหมดของประสบการณ์ครั้งแรกของไฮเบอร์เนตและรหัสการแยกข้อผิดพลาดอย่างง่ายในบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!