SpringFramework(9)

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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值