分享

SpringFramework(9)

 web.anywhere 2006-03-16

6ORM

1ORM

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

l         内建支持:

Ø         JDO

Ø         iBATIS

Ø         Hibernate

2Hibernate配置

l         定义DataSourceHibernate 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>

3HibernateTemplate

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相同的策略

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多