>  기사  >  Java  >  Spring의 ORM 모듈 코드에 대한 자세한 설명

Spring의 ORM 모듈 코드에 대한 자세한 설명

小云云
小云云원래의
2017-12-05 11:40:502086검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.