zoukankan      html  css  js  c++  java
  • Spring学习6_Spring整合HibernateTemplate应用

    一、实现原理

         Spring整合HibernateTemplate应用了模板方法设计,具体如下,以一个Demo为例,具体实现原理如下:

         首先定义一个回调/钩子类,如下: 

    package com.dao;
    
    import org.hibernate.Session;
    
    public interface MyHibernateCallBack {
        public void doHibernate(Session s);
    }

         在HibernateTemplate调用时通过上述回调来执行具体的数据库操作,如下:

    package com.dao;
    
    import org.hibernate.Session;
    
    public class MyHibernateTemplate {
        
        public void excuteNativeSession(MyHibernateCallBack callBack){
            
            Session session = getCurrentSession();
            try {
                
                //采用回调执行具体数据库操作
                callBack.doHibernate(session);
                
                session.close();
                session.getTransaction().commit();
            } catch (Exception e) {
                
                session.getTransaction().rollback();
            }
            
            
        };
        
        //获取当前Session
        private Session getCurrentSession(){
            return null;
        };
    }

         模板调用方法

    package com.dao;
    
    import org.hibernate.Session;
    
    import com.vo.Student;
    
    public class UserDaoImpl implements UserDao {
    
        @Override
        public void save(final Student student) {
            new MyHibernateTemplate().excuteNativeSession(new MyHibernateCallBack() {
                
                @Override
                public void doHibernate(Session s) {
                    s.save(student);
                    
                }
            });
        }
    
        @Override
        public void delete() {
            // TODO Auto-generated method stub
            
        }
    
    }
  • 相关阅读:
    祥解使用 SQL Server 2005/2008 发送数据库邮件
    将Virtual Server 2005 的虚拟硬盘(VHD)文件复制到HyperV
    Win2008 64位 iis7 环境下安装Discuz!NT
    seo
    找了好办天才找到的asp生成图片学习一下
    1.1 开发背景 (学习图书连载csdn
    我眼中的C# 3.0
    google编程
    反射之反思
    我要减肥
  • 原文地址:https://www.cnblogs.com/toDjlPersonnalBlog/p/4681506.html
Copyright © 2011-2022 走看看