Краткое введение в семь основных модулей весенней структуры
Подробное объяснение кода модуля MVC весной
Модуль ORM обеспечивает поддержку Frameworks ORM, таких как Hibernate, JDO, Toplinkibatis и т. Д.
Модули ORM полагаются на dom4j.jar, antlr.jar и другие пакеты
Весной ресурсы Hibernate должны быть переданы управлению весной, Hibernate, а его SessionFactory и другие знания Spring - это специальный боб, а Spring отвечает за экземпляр и разрушение. Следовательно, слой DAO должен только наследовать HibernatedAosupport, и ему не нужно иметь дело с API Hibernate, и ему не нужно включать или выключить сеанс и транзакцию Hibernate. Пружина автоматически сохранит эти объекты
публичный интерфейс icatdao {public void createcat (кошка кошка); Общественный список <TACE> LISTCATS (); public int getCatScount (); Public Cat FindCatbyName (String name); } импорт org.springframework.orm.hibernate3.support.hibernatedaosupport; открытый класс catdaoimpl расширяет hibernatedaosupportimplesments icatdao {public void createcat (cat cat) {this.gethibernateTemplate (). Persist (cat); } public List <cat> listcats () {вернуть это. gethibernateTemplate (). Найти («Выберите CFROM CAT C»); } public int getCatScount () {number n = (номер) this.getSession (true) .createequery ("selectCount (c) из Cat C"). Uniqueresult (); вернуть n.intvalue (); } public Cat FindCatbyName (String name) {list <TaC> catlist = this.gethibernateTemplate (). Найти ("Выберите C из Cat, где c.name =?", name); if (catlist.size ()> 0) return catlist.get (0); вернуть ноль; }}<bean id = "sessionfactory" dissome-method = "destout"> <name = "dataSource" ref = "dataSource"/> <!-Все классы в этом пакете будут загружены как классы объектов-> <name = "annotatedpackages" value = "classpath:/com/clf/orm"/> <name = "anotatedclasses"> <siled> <siled> <> <siled> <> <siled> <> <siled> <> <siled> <> <siled> <> <siled> <> <siled> <dulch> com.clf.spring.orm.orm.cat </value> <dather> com.clf.spring.orm.dog </value> </list> <name = "hibernateproperties"> <props> <prop key = "hiberante.dialect"> key = "hibernate.show_sql"> true </prop> <prop key = "hibernate.format_sql"> true </prop> <prop key = "hibernate.hbm2ddl.auto"> create </prop> </props> </property> <bean id = "catdao"> <property name = "sessionFactory" Reffactory "?
Если вы используете класс объектов, настроенный с XML, измените его на
<bean id = "sessionFactory" Dressome-method = "Dressome"> <name = "mappingResources"> <sist> <dust> classpath: /com/clf/orm/cat.hbm.xml </value> </list> </propetity>… </bean>
Пружина добавляет транзакции в слое DAO по умолчанию, и каждый метод слоя DAO является одной из транзакций. В программировании Spring+Hibernate обычная практика состоит в том, чтобы добавить сервисный уровень к слою DAO, а затем настроить транзакции на сервисный уровень.
публичный интерфейс icatservice {public void createcat (кошка кошка); Общественный список <TACE> LISTCATS (); public int getCatScount (); }Иерархический подход заключается в том, что программа вызывает уровень сервиса, уровень сервиса вызывает уровень DAO, а уровень DAO вызывает Hibernate для достижения доступа к данным. В принципе, трансграничный доступ не допускается. Слои делает бизнес -иерархию более четкой
открытый класс CatServiceImpl реализует icatservice {private idao catdao; public idao getcatdao () {return catdao; } public void setCatdao (idao dao) {this.catdao = dao; } public void createCat (Cat Cat) {catdao.createcat (cat); } public List <cat> listcats () {return catdao.listcats (); } public int getCatScount () {return catdao.getCatScount (); }}Затем настройте управление транзакциями на уровне обслуживания
<!-Менеджер транзакций-> <bean id = "hibernateTransactionManager"> <name = "sessionFactory" ref = "sessionFactory"/> </bean> <!-Правила управления транзакциями-> <Bean Id = "hibernateTransactionAttributesource"> <proports = "Properties"> <props> <! <propkeypropkey="*">PROPGATION_REQUIRED</prop> </property> </bean> <!-- Transaction Factory Agent Class, assemble Service Implementation Class, Transaction Manager, and Transaction Management Rules--> <bean id="catService"> <property name="transactionManager" ref=" hibernateTransactionManager"> <property name="target"> <bean > <property name="catDao" ref = "catdao"/> </bean> </property> <property name = "transactionattributesource" ref = "hibernatetransactionattributesource"/> </bean>
Суммировать
Выше приведено подробное объяснение кода модуля ORM Spring. Надеюсь, вы можете помочь. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!