การแนะนำสั้น ๆ เกี่ยวกับเจ็ดโมดูลหลักของกรอบฤดูใบไม้ผลิ
คำอธิบายโดยละเอียดของรหัสโมดูล MVC ในฤดูใบไม้ผลิ
โมดูล ORM ให้การสนับสนุนกรอบ ORM เช่น Hibernate, JDO, Toplinkibatis ฯลฯ
โมดูล ORM ขึ้นอยู่กับ dom4j.jar, antlr.jar และแพ็คเกจอื่น ๆ
ในฤดูใบไม้ผลิทรัพยากรไฮเบอร์เนตจะต้องส่งมอบให้กับการจัดการฤดูใบไม้ผลิ, ไฮเบอร์เนตและ sessionfactory และความรู้อื่น ๆ ฤดูใบไม้ผลิเป็นถั่วพิเศษและฤดูใบไม้ผลิมีหน้าที่รับผิดชอบในการสร้างอินสแตนซ์และการทำลายล้าง ดังนั้นเลเยอร์ DAO จะต้องสืบทอด Hibernatedaosupport เท่านั้นและไม่จำเป็นต้องจัดการกับ API ของ Hibernate และไม่จำเป็นต้องเปิดหรือปิดเซสชันและธุรกรรมของ Hibernate ฤดูใบไม้ผลิจะรักษาวัตถุเหล่านี้โดยอัตโนมัติ
ส่วนต่อประสานสาธารณะ icatdao {โมฆะสาธารณะ createCat (แมวแมว); รายการสาธารณะ <at> listcats (); สาธารณะ int getCatsCount (); Public Cat FindCatByName (ชื่อสตริง); - นำเข้า org.springframework.orm.hibernate3.support.hibernatedaosupport; คลาสสาธารณะ catdaoimpl ขยาย hibernatedaosupportimplements icatdao {โมฆะสาธารณะ createCat (แมวแมว) {this.getHibernatetemplate (). คงอยู่ (CAT); } รายการสาธารณะ <at> listcats () {ส่งคืนสิ่งนี้ getHibernatetemplate () ค้นหา ("เลือก cfrom cat c"); } public int getCatsCount () {number n = (หมายเลข) this.getSession (จริง) .Createquery ("SelectCount (C) จาก Cat C"). Uniqueresult (); ส่งคืน N.intvalue (); } cat public findcatbyName (ชื่อสตริง) {รายการ <at> catlist = this.getHiberNateTemplate () ค้นหา ("เลือก C จาก Cat ที่ c.name =?", ชื่อ); if (catlist.size ()> 0) return catlist.get (0); คืนค่า null; -<bean id = "SessionFactory" destroy-method = "Destroy"> <property name = "DataSource" ref = "DataSource"/> <!-คลาสทั้งหมดภายใต้แพ็คเกจนี้จะถูกโหลดเป็นคลาสเอนทิตี-> <property name = "AnnotatedPackages" value = "classpath:/com/com/clf/orm"/> <value> com.clf.spring.orm.cat </value> <value> com.clf.spring.orm.dog </value> </list> <property name = "hibernateProperties"> <props> <prop key = "hieberante.dialect" key = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true </prop> <prop key = "hibernate.hbm2ddl.auto"> สร้าง </prop>
หากคุณใช้คลาสเอนทิตีที่กำหนดค่าด้วย XML ให้เปลี่ยนเป็น
<bean id = "sessionfactory" destroy-method = "Destroy"> <property name = "MappingResources"> <list> <dalue> classpath: /com/clf/orm/cat.hbm.xml </alue> </list> </property>
สปริงเพิ่มธุรกรรมในเลเยอร์ DAO โดยค่าเริ่มต้นและแต่ละวิธีของเลเยอร์ DAO เป็นหนึ่งในธุรกรรม ในการเขียนโปรแกรม Spring+Hibernate การปฏิบัติตามปกติคือการเพิ่มเลเยอร์บริการลงในเลเยอร์ DAO จากนั้นกำหนดค่าการทำธุรกรรมให้กับเลเยอร์บริการ
ส่วนต่อประสานสาธารณะ icatservice {โมฆะสาธารณะ createCat (แมวแมว); รายการสาธารณะ <at> listcats (); สาธารณะ int getCatsCount (); -วิธีการแบบลำดับชั้นคือโปรแกรมเรียกเลเยอร์บริการเลเยอร์บริการเรียกเลเยอร์ DAO และชั้น DAO เรียกว่าไฮเบอร์เนตเพื่อให้บรรลุการเข้าถึงข้อมูล โดยหลักการแล้วไม่อนุญาตให้เข้าถึงข้ามพรมแดน เลเยอร์ทำให้ลำดับชั้นทางธุรกิจชัดเจนขึ้น
คลาสสาธารณะ catserviceimpl ใช้ icatservice {ส่วนตัว Idao catdao; สาธารณะ Idao getCatdao () {return catdao; } โมฆะสาธารณะ setcatdao (idao dao) {this.catdao = dao; } โมฆะสาธารณะ createCat (แมวแมว) {catdao.createCat (แมว); } รายการสาธารณะ <at> listcats () {return catdao.listcats (); } สาธารณะ int getCatsCount () {return catdao.getCatsCount (); -จากนั้นกำหนดค่าการจัดการธุรกรรมในระดับบริการ
<!-ตัวจัดการธุรกรรม-> <bean id = "hibernatetransactionManager"> <property name = "SessionFactory" ref = "SessionFactory"/> </ebean> <!-กฎการจัดการธุรกรรม-> <bean id = "hibernatetransactionattributesource"> <property name = "properties" <propkeyPropkey = "*"> propgation_required </prop> </property> </epean> <!-คลาสตัวแทนโรงงานธุรกรรมการประกอบคลาสการใช้งานบริการตัวจัดการธุรกรรมและกฎการจัดการธุรกรรม-> <Bean ID = "CatService"> <Property Name = "TransactionManager ref = "catdao"/> </ebean> </property> <property name = "TransactionAtTributesource" ref = "hibernatetransactionattributesource"/> </ebean>
สรุป
ข้างต้นเป็นคำอธิบายโดยละเอียดทั้งหมดของรหัสโมดูล ORM ของฤดูใบไม้ผลิ ฉันหวังว่าคุณจะช่วยได้ เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!