ホームページ  >  記事  >  Java  >  SpringのORMモジュールコードの詳しい説明

SpringのORMモジュールコードの詳しい説明

小云云
小云云オリジナル
2017-12-05 11:40:502124ブラウズ

ORM オブジェクト リレーショナル マッピングは、オブジェクト指向プログラミング言語で異なる種類のシステム間でデータを変換するために使用されるプログラミング テクノロジです。実際には、プログラミング言語で使用できる「仮想オブジェクト データベース」を作成します。この記事では主に Spring の ORM モジュール コードの詳細な説明を紹介します。必要な方はさらに学習してください。

Spring フレームワークの 7 つの主要モジュールの簡単な紹介

Spring の MVC モジュール コードの詳細な説明

ORM モジュールは、Hibernate、JDO、TopLinkiBatis およびその他の ORM フレームワークのサポートを提供します

ORMモジュールは dom4j.jar、antlr.jar などに依存します。 パッケージ

Spring では、Hibernate リソースは Spring とその SessionFactory およびその他の知識 Spring によって管理されなければなりません。 Spring は特別な Bean であり、Spring はインスタンス化と破棄を担当します。したがって、DAO レイヤーは HibernateDaoSupport を継承するだけでよく、Hibernate のセッションとトランザクションをオープンまたはクローズする必要はありません。XML で構成されたエンティティ クラスを使用する場合は、変更します。 to

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 層を呼び出します。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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。