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

2007年7月4日

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();
        }
    }

心得: 多包装多快乐

posted @ 2007-07-04 16:49 G_G 阅读(779) | 评论 (5)编辑 收藏