SpringFramework(9)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

6、ORM

(1)ORM

l ORM:对象关系映射(Object-Relational Mapping)

l 内建支持:

Ø JDO

Ø iBATIS

Ø Hibernate

(2)Hibernate配置

l 定义DataSource和Hibernate SessionFactory

<bean id="dataSource" ...> ... </bean>

<bean id="sessionFactory" class="...LocalSessionFactoryBean">

<property name="mappingResources">

<list>

<value>employee.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">....DB2Dialect</prop>

</props>

</property>

<property name="dataSource">

<ref bean="dataSource"/>

</property>

</bean>

(3)HibernateTemplate

l 创建HibernateTemplate

SessionFactory sessionFactory = (SessionFactory) ctx.getBean("sessionFactory");

HibernateTemplate hibernate = new HibernateTemplate(sessionFactory);

l 加载和更新

Employee e = (Employee) hibernate.load(Employee.class, "000330");

e.setFirstName("BOB");

hibernate.update(e);

l 使用方便的方法查询

List employees = hibernate.find("from app.Employee");

List list = hibernate.find(

"from app.Employee e where e.lastName=?",

"LEE",

Hibernate.STRING);

List list = hibernate.find(

"from app.Employee e where e.lastName=? and e.firstName=?",

new String[] { "BOB", "LEE" },

new Type[] {Hibernate.STRING , Hibernate.STRING });

l 使用回调方法查询

List list = (List) hibernate.execute(new HibernateCallback() {

public Object doInHibernate(Session session)

throws HibernateException {

List result = session.find("from app.Employee");

// do some further stuff with the result list

return result;

}

});

(4)异常处理

l 传递Hibernate异常到DataAccessException层

l 采用和JDBC相同的策略

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航