分析总结Spring管理Hibernate中Dao层访问数据库常用方式(附SSH的jar包) (三)

2014-11-24 09:07:00 · 作者: · 浏览: 8
ackage com.dao;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.entity.User;
public class UserDao2 {
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public void insert(User user){
hibernateTemplate.save(user);
}
}

package com.dao;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.entity.User;
public class UserDao2 {
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public void insert(User user){
hibernateTemplate.save(user);
}
}
其中Spring注入分为四种方式:常见的就是get/set方法,构造器方式,注解方式,还有不常用的接口方式,可以参考一下我以往的博客《spring——控制反转》,其中对这几种方式做了个对比。

Spring来管理Struts,Hibernate来说,常用的是注解方式,对于上述使用注解方式。

则Dao层的配置如下:

[html]
< xml version="1.0" encoding="UTF-8" >
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">



< xml version="1.0" encoding="UTF-8" >
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">




则Dao层类的写法如下:

[java]
package com.dao;
import javax.annotation.Resource;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.entity.User;
public class UserDao {
@Resource
private HibernateTemplate hibernateTemplate;
public void insert(User user){
hibernateTemplate.save(user);
}
}

package com.dao;
import javax.annotation.Resource;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.entity.User;
public class UserDao {
@Resource
private HibernateTemplate hibernateTemplate;
public void insert(User user){
hibernateTemplate.save(user);
}
}
这样这个Dao层类不用继承,直接使用注解方式注入HibernateTemplate即可。

总体来说,还是喜欢并且本次项目中使用注入HibernateTemplate方式。

这样访问Dao层基本完成了,但是若是访问的过程出错,那该咋办额?或者访问多个Dao层的过程中一个Dao出错,是不是此时其他的Dao层同时停止呢?呵呵,这块就涉及到事务管理了。Hibernate本身也提供了事务管理,其中Hibernate中提供的事务是自动提交的,那有没有更智能的自动提交呢?呵呵,下一篇博客,我们会继续讲解Spring管理事务的几种方式。

作者:llhhyy1989