解决方案 »

  1.   

    BaseDAO一般是提供从数据库 增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的底层数据操作自定义类。
    由于我们可能操作多个数据库表,这样就需要为每个表提供一个操作他的类 xxDAO, 这些DAO继承BaseDAO 就可以省略很多重复代码(从数据库 增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的代码)...然后因为DAO 与 Service分开 是因为, DAO是直接针对数据库进行操作的, 而Service是进行业务操作的,处理业务逻辑之用。
    如:添加一个用户, DAO只需要用来向数据库插入用户记录,而Service考虑的是:插入用户,可能同时还需要添加 角色,可能还需要做其他业务操作等等...     其实现在市面上流行的 MVC模式 ,你可以去好好理解一下。   这样开发的好处就是层次清晰,使项目的扩展性更好...
      

  2.   

    首先谢谢你的回复,就是说Service 里面除了调用dao来完成数据的持久化之外,可能还会有其他的操作,我举个例子不知道说的对不对,就比如说我先在有个 ajax请求需要得到用户列表(要得到json数据) 那么我的dao调用方法得到的是一个list集合,而service中出了调用dao这一层得到list集合后,还应该做相应的数据处理(转化成json数据),同理其它的一些的业务逻辑的操作,或者针对 dto 或者事务的处理都应该放在service 这一层吗??  我目前对业务逻辑的认识比较模糊
      

  3.   

    有那么一丝道理...但是一般查询没有什么大的业务逻辑,可以直接用action 或者 controller来处理。  一般复杂的都在添删改里面... 总之 各有各用~ 
      

  4.   


    事物处理的确都应放到service里面。  业务逻辑很模糊很正常,等你工作时间长了,接触到的东西多了就会明白。  
      

  5.   

    service,例如银行一个转账的模式,你这边转出需要减金额,那边进账需要加金额,但是这个业务操作必须为一个操作体,所以一般就要在业务层声明一个事务去提交,.而dao层只会给你提供与数据库交互的功能
      

  6.   

    说白了 dao层什么都不用关心  他只负责select  update  delete  insert
    具体什么时候做这些操作  怎么做这些操作 都由Service来处理。
    打个比方,dao就是士兵,Service就是将军。一切听指挥,只做你该做的。
      

  7.   

    dao层只做数据库交换的工作。
    service层做业务相关处理。
    分开就是为了让代码更清晰。
    逻辑出问题就在service找问题,数据库,sql有问题就在dao层找问题
      

  8.   

    不要钻进牛角,这只是一种分层结构,类似公安局,司法院,民政府,每个部门负责一个模块,也可以放一起,但是很乱;而mvc模式,dao层只用来处理与数据库的交互,service我只处理分发请求,求你给我什么请求,我去找对应处理你这个请求的方法,大家各负责一个模块;
      

  9.   

    1你的问题可以拆分三个问题
    一.继承问题。例如UserDaoImpl 等等只要继承BaseDaoHiber
      这个楼上已经说了很多了。节省代码。(我就不详细说了)
    2.面向接口编程
    解耦合,方便维护,扩展.一种规范约束方便团队开发
    范例:JAVA的JDBC,sun公司只写一个规范出来。你们数据库厂商自已去实现驱动。(规范约束)
    3.mvc分层模式
    区分层次的目的即为了“高内聚,低耦合”的思想。
    有利于标准化,分层开发是为了把代码区分开来。放在一起多乱啊。也有一部分是为省代码的原因
    补充一个例子:例如业务是转帐100块。手续费2块。这是业务问题。在SERVICE层写。从A去掉100块。B增加100百。去掉A的2元手续费。这是一个原子性的所以事务必须放在SERVICE.
    楼主问题解决.
    可以百度三层架构,面向接口编程,继承。问题解决