黑马程序员技术交流社区
标题:
Hibernate与Spring整合问题
[打印本页]
作者:
程杰
时间:
2012-10-23 15:08
标题:
Hibernate与Spring整合问题
Hibernate与Spring整合,Spring里面有个HibernateTemplate这个类。用HibernateTemplate类中的Save保存数据和用Hibernate框架先获得session在用session.save()有什么区别呀?看了半天看不出区别呀{:soso_e127:}
作者:
汪坤洋
时间:
2012-10-23 19:49
本帖最后由 汪坤洋 于 2012-10-23 19:57 编辑
用spring主要是为了减少程序的耦合性,本质没什么区别,而且用spring他在配置文件可以帮你生产session工厂,简单而且耦合性低
public class DeparmentDaoImp implements DeparmentDao{
private SessionFactory mySessionFactory ;
private Session session;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public boolean insertDep(Deparment3 deparment) {
mySessionFactory=HibernateUtil.getMySessionFactory();
session=mySessionFactory.openSession();
Transaction tx=session.beginTransaction();
session.save(deparment);
tx.commit();
session.close();
return true;
}
}这是用hibernate做的
public class MessageImpl extends HibernateDaoSupport implements MessageDao{
public boolean insertMessage(Message message) {
this.getHibernateTemplate().save(message);
return true;
}这是spring+hibernate做的
spring一般都是注入方式获取值得,所以几乎没什么依赖性!
作者:
程杰
时间:
2012-10-24 09:15
汪坤洋 发表于 2012-10-23 19:49
用spring主要是为了减少程序的耦合性,本质没什么区别,而且用spring他在配置文件可以帮你生产session工厂 ...
谢谢,写的很清楚
作者:
会飞的鱼
时间:
2012-10-27 00:04
Spring本身是一个容器,能根据业务需求提供各种各样的对象。用HibernateTemplate类中的Save保存数据和用Hibernate框架先获得session在用session.save()是没有什么区别的,全凭个人爱好。因为在使用HibernateTemplate时继承了HibernateDaoSupport ,而它已封装了sessionFactory工厂类,可提供session对象然后调用sava()方法。这个直接使用Hibernate原生API是一样的,只是Spring帮我们简化了获取session对象这一步逐。这也是为什么很多使用Spring的人可能不懂Hibernate的原生API却也一样能开发的原因。当然这时候我们就得自己处理这期间的异常和管理资源释放了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2