网友提问:
java中dao层和service层的区别是什么?
优质回答:
简单一点,dao层只是访问数据库,业务逻辑跟它没关系,它只会访问数据库读取数据,不知道这些数据是什么意思、做什么用的;service层,就是操作业务逻辑,它调取dao层的数据,对数据按照业务逻辑进行解释。
总结一下,就是dao层不能有业务逻辑,service层可以调取一个dao层或者多个dao来实现业务逻辑。如果dao层加了业务逻辑进去,可以不通过service层实现了业务逻辑,不仅拖累查询效率,还让dao层代码难以复用,导致代码臃肿。
其他网友回答
service负责业务逻辑,dao负责数据访问。
以注册用户这个功能为例,service层要负责检查用户名是否保留字,是否已使用,然后把信息写入数据库,再生成关联信息比如权限等也写入数据库。
同时还要处理异常。这一串动作就是业务逻辑,service层要负责实现,但它不应该关心底层用的是mysql还是oracle,也不应该由它拼接SQL语句。
dao层的代码则只与数据库交互,比如service层要添加用户记录,它就执行insert语句,要检查用户是否已存在,它就执行select语句。
标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码。
如果你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层。
其他网友回答
dao一般是直接对数据库的增删改查,给service提供服务,service一般是做业务逻辑处理,需要操作数据库时调用dao的方法
其他网友回答
dao对数据库进行操作的
service逻辑处理的,主要涉及到事务(你也可以在dao里面把整个逻辑,事务处理了)
只是代码逻辑清晰点,每个层次干不同的事