SpringFramework(9)

类别:Java 点击:0 评论:0 推荐:

6ORM

1ORM

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

l         内建支持:

Ø         JDO

Ø         iBATIS

Ø         Hibernate

2Hibernate配置

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>

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

本文地址:http://com.8s8s.com/it/it16263.htm