今天在鼓捣自己的小项目时候,突然想到了为什么要在这么一个项目中使用明明如此神似
的DAO层和Service层
自从大一暑假步入J2EE神殿以来,经常都是学习如何做而很少思考为什么这么做(不够深入还是硬伤啊。。。),于是乎就网上查找各种前辈们的见解和资料。 经过整理和思考, 对这个问题好像有了点自己的想法,但是又不知道自己的想法是否合理,又于是乎发在这个大牛云集的地方,想倾听一下大家的意见
以下是自己的看法:
DAO层
面向事务和持久层
。 它实现
完成
了
连接数据库
CRUD
等的
底层
细节
Service层
面向功能
和业务逻辑
。 它通过
调用一个或多个DAO
中的功能点
(方法
)
来组合成为
一个复杂的
业务逻辑
在大多数情况下,
DAO层与
Service
看起来会有很大的雷同。这是因为在大多数情况下
Service
的需求不是很复杂,在
Service
里面不需要完成过多的包装处理就可以直接调用
DAO
的方法执行数据请求处理,比如
Save
、
Delete
、
Update
、
Select
等。 然而为了项目各层的松耦合、扩展性,在开发中
Service
一般不能直接接触持久层
(
数据库
)
,必须通过
DAO
访问持久层。
有的时候只是为了分层清楚,为了将来scale up
的时候方便我们才把
service
和
dao
分开,其实没必要分开的
。在
小规模的应用中,没有Service
,完全是
DAO
或
BO
也是可以接受的。
但是开发人员总是追求更远大的目标,总是希望现在开发的项目在将来能够可持续发展,因此
DAO和
Service
分层也就显然合理了
我总是乐于帮助需要帮助而我力所能及的人。 希望大牛们路过,发现小弟这个有什么问题或者有其他的见解发出来让小弟见识见识哈
========================================================================================
我感觉很在理的一些见解 写道
1、dao只面向持久层,事务层应该在service层。
2、service层面向事务和业务逻辑,一个业务不仅可以调用多个dao,也能调用多个service完成业务功能。 事务一般不会在DAO层,一般在Control中。或者在service中!
3、DAO层面的目的是试图在表结构发生变化的时候尽量去少改动代码。 这些东西对于一次性的项目或许是没什么意义的。但是如果产品存在扩展和完善的需求,这样做的目的就显现出来。 只所以分层的设计思想在很多时候并没有体现出优势,主要原因就是规划和设计不足导致。
分享到:
相关推荐
标题 "自动生成DAO和服务层代码" 指的是在软件开发过程中使用自动化工具来快速创建数据访问对象(DAO)和业务服务层(Service)的代码。这种做法可以显著提高开发效率,减少手动编写重复代码的时间,使开发者能够更...
这个过程通常涉及编写DAO(Data Access Object)、Service和Controller层的代码,这些是软件架构中的核心组件。"快速生成DAO、Service、Controller等相关代码"的标题和描述暗示了一个针对这种情况的解决方案,即一个...
区分Action、Service和Dao功能 在软件开发中,Action、Service和Dao都是常用的架构模式,但是很多开发者对这些概念的理解和使用却存在一定的混淆。因此,本文将对Action、Service和Dao的功能进行详细的区分和解释。...
另一种机制采用xml文件形式实现dao、service、controller层封装,具体业务类只需继承就可实现基本的CRUD操作,整个工程导入即可运行(一个月心算之作,稍贵一点,下载以后大部分资料都不需要看了)
在反复的做项目的过程中,是不是每次都有大量的dao和service生成(vo的) 是不是总是要复制,粘贴.本人花了一天时间写了一个小小的工具.只需配合一下vo包名即可生成所有的vo 的dao 和service (当然,您的框架和我不一样只...
在分层架构中,Service层和DAO层的解耦是非常重要的。Spring框架通过依赖注入(Dependency Injection,DI)实现了这一目标,使得Service层可以通过接口引用DAO层的实现,而不是直接创建DAO实例。这增强了系统的可...
标题中的“hibernate4 通用dao,service”指的是在Java开发中使用Hibernate框架实现的通用数据访问对象(DAO)和业务服务层(Service)。Hibernate是一个流行的对象关系映射(ORM)工具,它允许开发者使用面向对象的...
Java自动生成entity、dao、service、controller代码
service接口 package com.erp.service; ... import ...这样只需要向dao中注入pojo的完整包名,你就能拥有一个pojo的dao,并且在你的service接口和实现类里不用写一句代码. 轻松持久化你的entity pojo
Java代码生成器是一种工具,主要用于自动化编程过程中重复性较强的部分,比如DAO(数据访问对象)层和服务(Service)层的代码编写。DAO层是应用程序与数据库交互的主要接口,而Service层则封装了业务逻辑,两者在...
本项目采用DAO(数据访问对象)、Service层以及Servlet和JSP技术,按照MVC(模型-视图-控制器)模式来实现留言板功能,包括留言的添加和查看。 1. **MVC模式**: MVC是一种广泛应用于Web应用开发的设计模式,它将...
在SSM框架中,mapper、dao、service、controller等相关文件是非常重要的组件,它们之间的关系和调用顺序非常关键。下面,我们将对这些组件进行详细的解释和整理。 Mapper文件 Mapper文件是MyBatis框架中的一个核心...
我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...
在"dao模式"这个压缩包里,你可以找到实现这些功能的具体代码示例,这将帮助你理解如何在实际项目中应用DAO模式进行分层设计和数据库操作。学习这些示例,你将能够更好地掌握如何在Java或其他支持DAO模式的编程语言...
在这个名为"Servlet使用MVC模式(Dao\Service\Servlet)增删查改"的小程序中,我们将深入探讨如何利用这些组件来实现对MySQL数据库的操作。 **模型(Model)** 模型层是应用程序的核心,负责处理业务逻辑和数据访问...
数据库表生成domain, DAO, service, controller工具是一种高效开发辅助软件,主要针对Java Web应用程序开发。这类工具的主要目的是简化从数据库模型到应用层代码的转换过程,帮助开发者快速生成符合MVC(Model-View-...
采用Service+Service+DAO实现用户注册登陆 数据库:SQLite 代码:JSP 目的要求 (1)掌握Servlet使用技术; (2)掌握开发平台的分层技术;...(1)Servlet+Service+DAO开发模式的理解; (2)DAO的封装。
DAO(Data Access Object)分层思想是软件设计模式中一种常用的数据访问模式,它主要用于将业务逻辑与数据访问逻辑分离,提升代码的可维护性和可扩展性。在C#编程中,DAO层扮演着关键角色,它使得应用程序可以与...
本文将围绕"新闻发布系统设计思路(Dao与service)"这一主题,深入解析DAO(Data Access Object)层和服务(Service)层的设计与实现。 DAO层是数据库访问层,其主要职责是处理与数据库的交互,包括数据的读取、写入...