学习JavaEE一段时间了,心里总有个疑问:关于DAO层,只写一个DAO和其实现类就已经可以通过业务逻辑层调这个DAO实现对数据库的操作了。心里老想不明白,为什么要为每个实体类写一个DAO呢?求前辈们指教。

解决方案 »

  1.   

    dao就是数据访问层嘛。。
    我们在操作数据库时,需要将数据库中关系型的数据得转化成我们实体对象,也就是实现(ORM)对象关系的映射所以每个dao对应一个自己实体类
      

  2.   

    不复杂的话用个万能DAO对象也是可以的
      

  3.   

    个人认为:每个实体类写一个DAO就是菜鸟程序员的做法!应该建立通用Dao。即:
    Dao 屏蔽 数据库差异(oracle、mysql、db2等)
    Po  屏蔽 数据库表结构差异每一层都要屏蔽一组差异
      

  4.   

    4楼说的就是高手了,其实这只是个习惯问题,能做成通用的dao更好
      

  5.   

    我赞同多个业务模型采用一个通用dao的观点,除非dao层混进了本不该混进的业务逻辑,否则所有业务模型操作数据库的动作都是差不多的,dao接口他只提供以面向对象方式操作数据库的服务
    欢迎提出不同意见。
      

  6.   

    补充下,在不用orm框架时,确实有必要用dao的不同实现类来区别不同数据库的操作。除此之外,还是一个通用的即可搞定。
      

  7.   

    为什么要为每个实体类写一个DAO呢?
    当然不是,写一个父dao,共用
      

  8.   

    采用通用泛型写一个共用的类或接口就OK了。。
      楼主你想如果我在一个项目中有N个实体,那在写N个DAO那要到猴年马月呀
       你的只是初期让你熟悉DAO的编写,方便以后抽象出共有的类或接口做准备的
        很好,和我当年想的一样只是我当时就在网上搜资料搞定了。(往事呀。。)
         O(∩_∩)O哈哈~ 加油!