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相同的策略
本文地址:http://com.8s8s.com/it/it16263.htm