Spring集成Hibernate3同集成Jdbc一样,提供了模板,使得我们只需要关心数据表的操作,资源的关闭打开、异常的处理交给Spring来完成,这个模板就是HibernateTemplate。HibernateTemplate(DAO支持类)通过SessionFactory来获取,所以看一下如何在XML中配置SessionFactory
//数据源
<bean
id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property
name="driverClassName"
value="com.mysql.jdbc.Driver ">
</property>
<property
name="url"
value="jdbc:mysql://localhost:3306/dataBase">
</property>
<property
name="username"
value="root"></property>
<property
name="password"
value=""></property>
</bean>
//SessionFactory Bean
bean
id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
//数据源
<property
name="dataSource">
<ref
bean="dataSource"/>
</property>
//其他一些属性、例如:方言、是否打印SQL。。。。
<property
name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
//映射文件
<property
name="mappingResources">
<list>
<value
>hibernate/Users.hbm.xml</value>
</list>
</property>
</bean>
在应用程序中可以通过SessionFactory sf= getBean(“sessionFactory”,SessionFactory.class);
HibernateTemplate ht=new HibernateTemplate(sf);
然后通过HibernateTemplate操作表。
ApplicationContextac=new ClassPathXmlApplicationContext("applicationContext.xml");
SessionFactorysessionFactory=ac.getBean("sessionFactory",SessionFactory.class);
HibernateTemplate ht=newHibernateTemplate(sessionFactory);
Users user=new Users();
user.setUname("zhangsan");
user.setAge(1);
ht.save(user);
我们可以看出,该操作省略了资源的打开与关闭、异常的处理。