有了通用basedao还需要编写其他的DAO吗比如还需要编写userDao(接口)  userDaoImpl(实现)吗还是直接在service(服务层)注入一个baseDao就好了???我是这样分层的  JSP--->action--->service---->dao

解决方案 »

  1.   

    个人觉得没必要,如果你真的有“通用的”basedao
      

  2.   

    这让有助于以后的业务扩展   单一的basedao局限性太大
      

  3.   

    这个要看你用什么框架了。。如果直接JDBC,那么userDao(接口) userDaoImpl(实现)还是要写的
    如果用hibernate写basedao,userDao(接口) userDaoImpl(实现)写了也没意思
      

  4.   

    dao 这种东西跟业务关系太大了。想对数据库的操作因为业务不同都是五花八门的。你就一个BaseDao 能搞定吗?! 不行吧。 
      

  5.   

    使用MyBatis,一个DAO搞定,换数据库,直接换sql的xml文件,嘎嘎
      

  6.   

    需要一个dao只操作一个实体相关的表。
      

  7.   

    这个要和业务挂钩吧.业务复杂那么一个baseDao是不行的
      

  8.   

    我觉得一个不够用,basedao 只是公用的一些方法 ,不同的项目 业务不一样,所以 扩展性的 各种dao 还是得写的!
      

  9.   

    我觉得是可以的,只要参数是String,里面是sql语句,跟JDBC一样,应该搞定了
      

  10.   

     个人觉得还是每个实体对应一个dao吧!!这个感觉比较清晰!!
      

  11.   

    每个项目、框架各不相同。
    IMHO,80%的数据库操作,一个Generic的DAO就可以了,剩下的20%数据库操作,因为业务逻辑的复杂或者效率的考虑,需要手工写代码
      

  12.   

    有了通用basedao还需要编写其他的DAO吗比如还需要编写userDao(接口) userDaoImpl(实现)吗还是直接在service(服务层)注入一个baseDao就好了???我是这样分层的 JSP--->action--->service---->dao通用basedao一般是连接数据库的。就算里面写了QCID的通用方法,也需要在userdao里调用的,你做的项目要符合3层+MVC,这样才能很好的具有可扩展性和可维护性~~~~~你用SSH,
    就在service注入userdao,在userdao里注入basedao
      

  13.   

    看来主流都是赞成写扩展DAO,如果每个都要写扩展dao那baseDao还有什么意义呢?还是baseDao只是为扩展DAO服务的??
      

  14.   

    我们一般都会把通用的beanDao做成范式 比如 beanDao<T>  这样其他的dao在实现的时候都把各自对应的对象传过来