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 サイトの他の関連記事を参照してください。