ORM 객체 관계형 매핑은 객체 지향 프로그래밍 언어로 다양한 유형의 시스템 간에 데이터를 변환하는 데 사용되는 프로그래밍 기술입니다. 실제로 프로그래밍 언어에서 사용할 수 있는 "가상 객체 데이터베이스"를 생성하는 것입니다. 이 기사에서는 주로 Spring의 ORM 모듈 코드에 대한 자세한 설명을 소개하는데, 이는 특정 참조 가치가 있으며 필요한 친구는 더 자세히 알아볼 수 있습니다.
Spring 프레임워크의 7개 주요 모듈에 대한 간략한 소개
Spring의 MVC 모듈 코드에 대한 자세한 설명
ORM 모듈은 Hibernate, JDO, TopLinkiBatis 및 기타 ORM 프레임워크를 지원합니다
ORM 모듈은 dom4j.jar, antlr.jar 등에 따라 다릅니다. 패키지
Spring에서는 Hibernate 리소스가 Spring에 의해 관리되어야 하며 SessionFactory 및 기타 지식 Spring은 특수 Bean이며 Spring은 인스턴스화 및 파괴를 담당합니다. 따라서 DAO 레이어는 HibernateDaoSupport만 상속하면 되고 Hibernate의 API를 처리할 필요가 없으며 Hibernate의 Session을 열거 나 닫을 필요가 없으며 Spring은 자동으로 이러한 객체를 유지 관리합니다.
public interface ICatDao{ public void createCat(Cat cat); public List<Cat> listCats(); public int getCatsCount(); public Cat findCatByName(String name); }
Spring은 기본적으로 DAO 레이어에 트랜잭션을 추가하며 DAO 레이어의 각 메서드는 트랜잭션입니다. Spring+Hibernate 프로그래밍에서 관례적인 접근 방식은 DAO 계층 위에 서비스 계층을 추가한 다음 서비스 계층에서 트랜잭션을 구성하는 것입니다
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class CatDaoImpl extends HibernateDaoSupportimplements ICatDao{ public void createCat(Cat cat){ this.getHibernateTemplate().persist(cat); } public List<Cat> listCats(){ return this. getHibernateTemplate().find("select cfrom Cat c"); } public int getCatsCount(){ Number n = (Number)this.getSession(true).createQuery("selectcount(c) from Cat c").uniqueResult(); return n.intValue(); } public Cat findCatByName(String name){ List<Cat> catList =this.getHibernateTemplate().find("select c from Cat where c.name = ?",name); if(catList.size()>0) return catList.get(0); return null; } }
계층적 접근 방식은 프로그램이 서비스 계층을 호출하는 것입니다. 서비스 계층은 DAO 계층을 호출하여 데이터 액세스를 구현하기 위해 Hibernate를 호출합니다. 원칙적으로 교차 액세스는 허용되지 않습니다. 계층화를 통해 비즈니스 수준이 더욱 명확해집니다
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" destroy-method="destroy"> <property name="dataSource" ref="dataSource" /> <!-- 该Package下的所有类都会被当做实体类加载--> <property name="annotatedPackages" value="classpath:/com/clf/orm" /> <property name="anotatedClasses"> <list> <value>com.clf.spring.orm.Cat</value> <value>com.clf.spring.orm.Dog</value> </list> <property name="hibernateProperties"> <props> <prop key="hiberante.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop 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" class="com.clf.spring.orm.CatDaoImpl"> <property name="sessionFactory" ref=" sessionFactory"/> </bean>
그런 다음 서비스 계층에서 트랜잭션 관리를 구성하세요
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="destroy"> <property name="mappingResources"> <list> <value>classpath:/com/clf/orm/Cat.hbm.xml</value> </list> </property> …… </bean>
위 내용은 Spring의 ORM 모듈 코드에 대한 자세한 설명이므로 모두에게 도움이 되기를 바랍니다.
관련 권장사항:
Java 프레임워크에서 Spring 프레임워크의 장점 Java에서 SpringAop에 대한 자세한 설명 Spring MVC에 대한 간략한 소개위 내용은 Spring의 ORM 모듈 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!