getSession就已经是公共的dao了,无需再增加公共dao了因为持久层就是简单的数据库增删改查操作,hibernate已经封装好了,再抽取也没什么意义

解决方案 »

  1.   

    我就觉得  每张表  对应一个DAO   代码量很大啊    而且很多代码都是一样的!!  只是实体不同而已!!
               公共的对每个表都适用       移植到别处   马上就可以用了!   很方便的 但是他说对性能  有影响           是不是真的啊??
      

  2.   

    有什么影响啊?
    我没怎么感觉出来可能是数据库不大的原因吧
    一样的代码放共通去,实体的放dao里面
    持久化的话这样是必须的。
    说穿了,其实就是为下个接手你这项目的人而做的
      

  3.   

    抽成原子操作有他的好处,你的动作操作的就不是单个dao的方法了,有可能是多个方法的合集例如
    class TestADao{
       public void save();
       public void delete();
    }class TestBDao{
       public void save();
       public void delete();
    }class TestController{
       public void saveAll(){
          daoA.save();
          daoB.delete();
          daoB.save();
       }
    }
    最终事务包装在第三个类TestController的saveAll方法上,这样原子操作可以批量生成,事务操作可以得到分解。
    你只要用框架技术,运行效率都是比不用框架慢的,
    但是,开发效率要快的多作为公司,首先考虑的是开发效率而不是运行效率,生产环境的性能可以依靠提高硬件配置来实现。谁都知道Java语言比别的都慢,那为啥还有人用呢?因为现在机器配置好了而已。
      

  4.   

    这么做比较多余,你想一下如果你没建立所谓的“公共dao”是什么情景;getSession.save(object); 而你要把这句换成;
    publicDao.add(object) ;有什么区别吗???add里的实现:
    public boolean add(Object object) 

        getSession.save(object); 
          return true; } 这不是多余吗??
      

  5.   

    楼上的  你的意思不要公共DAO??    还是为每个实体写个DAO??            还是根本不要DAO,直接在action里调用getSession().add()?你的意思   完全看不懂!!        
      

  6.   

    是不是类似下面这个帖子中,第 5 题的问题啊?http://topic.csdn.net/u/20080407/09/dabcc399-4460-47ef-966f-26bcb800bd39.html
      

  7.   

    来学习下.顺便问下CSDN上的总技术分排名是根据什么排的啊,为什么我看到好多分低的比分高的排名靠前啊?