5.4.2 Using Hibernate templates

HibernateTemplate’s main responsibility is to simplify the work of opening
and closing Hibernate Sessions and to convert Hibernate-specific exceptions
to one of the Spring ORM exceptions

下面实例是按照Spring in action 2nd Edition里面的示例写的。数据库使用Oracle.

1.定义一个POJO

代码如下:

public class Motorist { private long id; private String email; private String password; private String firstName; private String lastName; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }

2.创建表

create table MOTORIST ( ID NUMBER, EMAIL VARCHAR2(32), PASSWORD VARCHAR2(32), FIRSTNAME VARCHAR2(32), LASTNAME VARCHAR2(32) )

下面就是如何简单的利用Spring 和Hibernate做ORM。

3.定义hibernate配置文件

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.roadrantz.dao.jdbc.Motorist" table="MOTORIST" lazy="false"> <id name="id" column="ID"/> <property name="email" column="EMAIL"/> <property name="password" column="PASSWORD"/> <property name="firstName" column="FIRSTNAME"/> <property name="lastName" column="LASTNAME"/> </class> </hibernate-mapping>

4.定义数据源

在Spring的配置文件中加入

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.0.20:1521:test"/> <property name="username" value="test"/> <property name="password" value="test"/> <property name="initialSize" value="5"/> <property name="maxActive" value="10"/> </bean>

5.在Spring配置文件中定义LocalSessionFactoryBean

在Spring配置文件中加入

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources"> <list> <value>com/roadrantz/domain/Motorist.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> </props> </property> </bean>

6.定义HibernateTemplate

在Spring配置文件中加入

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"/> </bean>

7.写测试类

以下是HibernateRantDao类的片断

public Motorist getMotoristById(long id) { return (Motorist) hibernateTemplate.load(Motorist.class, id); } public void saveMotoris(Motorist m) { hibernateTemplate.saveOrUpdate(m); } public void delMotorist(Motorist m) { hibernateTemplate.delete(m); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "com/roadrantz/dao/hibernate/hibernaterant.xml"); HibernateRantDao p = (HibernateRantDao) ctx.getBean("rantDao"); // Motorist m = (Motorist) ctx.getBean("motorist"); /* m.setId(2l); m.setEmail("wax@sohu.com"); m.setFirstName("wax"); m.setLastName("robin"); m.setPassword("zzz"); //保存 // p.saveMotoris(m); //删除 p.delMotorist(m);*/ //查找 Motorist m = p.getMotoristById(1l); System.out.println(m.getLastName()); }

8,在Spring配置文件中加入POJO和测试类

<bean id="rantDao" class="com.roadrantz.dao.hibernate.HibernateRantDao"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean> <bean id="motorist" class="com.roadrantz.dao.jdbc.Motorist"/>

9.运行函数,输入结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值