posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

hibernate 包装

Posted on 2007-07-04 16:49 G_G 阅读(1012) 评论(5)  编辑  收藏 所属分类: hibernate
07-11-9
由于我对hibernate理解的深入,在次我来终结下这篇文章的不足的地方(好多人在拍砖哈)
对复杂的逻辑这样开和关太冒失了。
  在普通的逻辑方法中 session都叠加的用上2次以上 这就要对一级缓冲的管理。事物的使用也是一样。


下载:
 
http://www.blogjava.net/Files/Good-Game/hibernateUtil.rar

简单的继承包 : 
      继承 DBManage 类  把 数据包装类 管理 ( 填充 , set 等 ) 后就直接放到里 insert , update , delete 方法中
         填充可看看这个,很有实用价值 ----> ( 当 Form -> Bean  或 Bean ->Bean  ) 例子很简单但想法表明  
                                                                           
      继承 DBSelect 类 为 select  这只是 把 Query 给出 简单用法 是
                                                      Query qu =   dao.getQueryBegin(  " HQL " );
                                                              qu.add .....
                                                      List li = dao.getQuertyEnd( qu );
     扩展:  Criteria  cr , SQLQuery , 等等 把她包装成 各个 dao 中 不是 很 偷懒     : )


Eg :     extendsDBBasic 类
    public List select(String id,String time){

        List list 
= new ArrayList();
        
        Query qu =
getQueryBegin("HSQL");   //继承带来的好处
        
        .add..........

             
       List list = getQuertyEnd(qu);
   //继承结束
        

        
return  list;
    }

缺点: 最好不要static 在一时间点上 此类不能支持多线程 
               basicBegin  basicEnd  方法 ( 我找不到好的方法 要的话来个 连接池什么的 大家讨论西西吧!!  )
               sess 为全局的 session 要是 写成 baseicBegin 返回的话 感觉下面的还有很多要写 什么 close 啊...
                     sess 也是缺点的所在  当然大家 有什么想法 改下 或自己来个 小包装 我只是    抛砖引玉
   
    private Map transmap = new HashMap();

    
protected Session basicBegin(){
        Session sess 
= SessionManager.currentSession();
        
try {
            transmap.put( sess, sess.beginTransaction() );
        }
catch(Exception e){System.out.println(e);}
        
return sess ;
    }
    
    
protected void basicEnd(Session sess){
        
try {
            ((Transaction)transmap.remove(sess)).commit();
        }
catch(Exception e){System.out.println(e);}
        
finally{
            sess 
= null ;
            SessionManager.closeSession();
        }
    }

心得: 多包装多快乐

评论

# re: hibernate 初包装(简单)  回复  更多评论   

2007-07-04 22:08 by end
晕死,还有这样写的。

# re: hibernate 初包装(简单)  回复  更多评论   

2007-07-05 10:28 by tt
真是受不了,林子大了什么鸟都有啊!

# re: hibernate 初包装(简单)  回复  更多评论   

2007-07-05 13:35 by G_G
非主流 想法
呵呵 希望大家说出 这样的不足 和 自己看法
我发现 大量的 写 session 的 开始 和结束 了

# re: hibernate 初包装(简单)  回复  更多评论   

2007-07-05 13:36 by G_G
那 大家 的 hibernate 有没有好的 方法写?

# re: hibernate 初包装(简单)  回复  更多评论   

2007-07-06 21:07 by 轩朗=maninred
用spring用HibernateSupport类

只有注册用户登录后才能发表评论。


网站导航: