spring 과 Hibernate 통합
spring hibernate ,spring hibernate dao , JDBC,JDO,IBATIS, TOPLINK, 。
spring hibernate :
# HibernateTemplate Callback 。
# HibernateDaoSupport AOP
IOC/HibernateTemplate JdbcTemplate , HibernateDaoSupport/AOP 。
Hibernate , :
1。 Hibernate SessionFactory。
2。 DAO HibernateDaoSupport
3。 AOP
:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="model">
<class name="Widget" table="WIDGETS">
<id name="id" column="WIDGET_ID" type="long">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="string"/>
<property name="size" column="SIZE" type="int"/>
</class>
</hibernate-mapping>
,Widget ( , ) SessionFactory:
spring SessionFactory , hibernate-config.xml 。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="mappingResources">
<list>
<value>Widget.hbm.xml</value>
</list>
</property>
</bean>
hibernate.properties ,spring LocalSessionFactoryBean ,dialect 。 spring DataSource LocalSessionFactoryBean 。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="mappingResources">
<list>
<value>Widget.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
</props>
</property>
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>org.hsqldb.jdbcDriver</value></property>
<property name="url"><value>jdbc:hsqldb:mem:widgets</value></property>
<property name="username"><value>sa</value></property>
<property name="password"><value></value></property>
</bean>
DAO HibernateDaoSupport。
spring HibernateDaoSupport Hibernate , HibernateTemplate 。
,Hibernate2 HibernateException Hibernate3 。 Hibernate3 。 。
public class WidgetDAOHibernateImpl extends HibernateDaoSupport implements WidgetDAO {
public Collection getWidgets() {
return getHibernateTemplate().loadAll(Widget.class);
}
public Widget getWidgetById(Long id) {
return (Widget)getHibernateTemplate().load(Widget.class,id);
}
public Widget saveWidget(Widget widget) {
getHibernateTemplate.saveOrUpdate(widget);
return widget;
}
}
, DAO HibernateINterceptor , Hibernate Session , 。 , 。 “widgetDAO” , "widgetDaoTarget"。
<!-- THE HIBERNATE INTERCEPTOR -->
<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="widgetDaoTarget" class="WidgetDAOHibernateImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="widgetDAO" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.zabada.springrecipes.base.WidgetDAO</value>
</property>
<property name="interceptorNames">
<list>
<value>hibernateInterceptor</value>
<value>widgetDaoTarget</value>
</list>
</property>
</bean>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.