论坛首页 入门技术论坛

帮助......解答......DAO.........意见....谢谢

浏览 1868 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-04-20  
DAO
我想做一个公共的DAO类,然后用每个对象都可以访问这同一个DAO.不知道怎么做,我自己的想法如下..请指点指点...
DAO
  1. package com.text.comm;   
  2. import com.text.base.entity.Role;   
  3. import com.text.base.entity.User;   
  4. import com.text.base.exception.DaoException;   
  5. import com.text.base.util.TranscationManager;   
  6. //目的是想做一个公共的DAO   
  7. //然后每个对象有一个BIZ类,如,UserBIZ,RoleBIZ   
  8. //然后有BIZ层去调用DAO   
  9. public class DAO{   
  10.   
  11.        
  12.     //查找单个对象   
  13.     public Object loadObject(TranscationManager tm,Object t,int id) throws DaoException {   
  14.            
  15.         try{   
  16.             //不知道DAO层这里可不可以这样写?   
  17.             if(t instanceof User){   
  18.                 t = tm.getSession().get(User.class,id);    
  19.             }   
  20.             if(t instanceof Role){   
  21.                 t = tm.getSession().get(Role.class,id);    
  22.             }   
  23.             //....   
  24.                
  25.         }catch(Exception e){   
  26.             throw new DaoException("loadObject:"+e);   
  27.         }   
  28.         return t;   
  29.     }   
  30.     //添加   
  31.     public boolean insert(TranscationManager tm,Object t) throws DaoException {   
  32.         try{   
  33.             tm.getSession().save(t);   
  34.         }catch(Exception e){   
  35.             throw new DaoException("insert:"+e);   
  36.         }   
  37.         return true;   
  38.   
  39.     }   
  40.     //删除   
  41.     public boolean delete(TranscationManager tm,Object t) throws DaoException {   
  42.         try{   
  43.             tm.getSession().delete(t);   
  44.         }catch(Exception e){   
  45.             throw new DaoException("delete:"+e);   
  46.         }   
  47.         return true;   
  48.     }   
  49.     //修改   
  50.     public boolean update(TranscationManager tm,Object t) throws DaoException {   
  51.         try{   
  52.             tm.getSession().update(t);   
  53.         }catch(Exception e){   
  54.             throw new DaoException("update:"+e);   
  55.         }   
  56.         return true;   
  57.     }   
  58.        
  59.        
  60.   
  61. }   

 

BIZ
  1. package com.text.comm;   
  2.   
  3.   
  4. import com.text.base.entity.User;   
  5. import com.text.base.exception.BIZException;   
  6. import com.text.base.exception.DaoException;   
  7. import com.text.base.util.TranscationManager;   
  8.   
  9.   
  10. public class UserBIZ{   
  11.   
  12.     //添加   
  13.     public boolean create(String username, String password) throws BIZException{   
  14.         DAO dao = new DAO();           
  15.         TranscationManager tm = new TranscationManager();   
  16.         try{   
  17.             //事务开始     
  18.             tm.startOperate(true);             
  19.                
  20.             //执行操作   
  21.             User po = new User();              
  22.             po.setUsername(username);   
  23.             po.setPwdOriginal(password);       
  24.             dao.insert(tm, po);   
  25.         }catch(DaoException e){   
  26.             //事务回滚   
  27.             tm.rollbackOperate();   
  28.             throw new BIZException("create:"+e);   
  29.         }finally{   
  30.             //事务提交   
  31.             tm.endOperate();   
  32.         }      
  33.         return true;       
  34.     }   
  35.        
  36. }   

 

Service
  1. package com.text.comm;   
  2.   
  3. public class Service{   
  4. //这层是获取正确的参数传给BIZ层...   
  5.      public void execPre(){   
  6.        
  7.          String name="haha";   
  8.          String pwd="1234";   
  9.          UserBIZ biz = new UserBIZ();   
  10.          try{   
  11.              biz.create(name,pwd);   
  12.                 
  13.          }catch(Exception e){               
  14.          }   
  15.      }   
  16. }   

 

本人是新手...没有什么经验...这只是自己的一个想法...不知道行不行....请大家指点...见笑了....

   发表时间:2007-04-20  
泛型


0 请登录后投票
   发表时间:2007-04-20  
    public void save(Object entity)
    {
        getHibernateTemplate().save(entity);
    }

    public void update(Object entity)
    {
           getHibernateTemplate().update(entity);
    }
    public void delete(Object entity)
    {
        getHibernateTemplate().delete(entity);
    }    
    public <T> T load(Class<T> entity, Serializable id)
    {
        return (T)getHibernateTemplate().load(entity, id);
    }
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics