×

dao层和service层

dao层和service层(action层,dao层,service层,domain层,util层,common层含义是什么)

admin admin 发表于2023-06-09 23:35:28 浏览67 评论0

抢沙发发表评论

本文目录

action层,dao层,service层,domain层,util层,common层含义是什么


action层,dao层,service层,domain层,util层,common层含义如下:

  • action为控制层,MVC中充当C角色,用来分配哪个业务来处理用户请求。

  • dao持久层,DB操作都写在这里。

  • service层属于springmvc的service业务层。

  • domian存放实体,如果用ibatis框架,一般mapping创建在它下面,当然只针对架构mapping也是无意义。 

  • util功能包,针对本项目工具类。

  • common通用工具包,一般一个公司会有固定的jar,好几个项目通用的,例如远程调用等。

功能介绍如下:

  • util功能包,针对本项目工具类。

  • Action类是[获得Form表单数据,并处理逻辑的类] 。

  • DAO(Data Access Object) 是一个接口实现[通过SessionFactory获得操作数据库的会话,并实现一些基本的删除、添加、修改数据。

  • 在servlet中更实际化业务操作]简单点说,dao层基本都是几个固定的增删改查方法,比方说你在用hibernate的时候,数据库发生变化时,就要重新生成相应的dao,所以发你的代码重新写在service里面,dao变化都不会影响你的程序了。


关于service层和DAO层的几点疑惑


这么来讲好了 按你所说 在action中直接调用StudentDAO中的student.add()。 现在有客户A 客户B
客户A的需求是 addStudent 这个和你所说的情况一致
客户B的需求是 addStudent 前去加一个动作 将学生父母的信息也插入数据库
这时如果按照只调用DAO的方法的话,你需要从新建立一个action
CustomerBAction
再重新写一个DAO 因为这个DAO里要有添加父母的方法 student.addStudentAndParentInfo()。
CustomerBAction 去调用 student.addStudentAndParentInfo()。
这样加大了很多工作量
如果中间有service层的话 action始终用一个action
而调用的也是service接口 只要对接口注入不同的实现就可以满足 不同客户的需求了
知识要活学活用,要按照自己项目以后的发展趋势来搭设环境,别人家说什么就用什么。其实有时候javabean+jsp 也很好用啊,因为jsp不用重启服务 开发速度很快。我做小项目就是这种模式,以后小项目的更改也会很少,所以不用搭建的过于复杂。

JAVA中“Action层, Service层 ,modle层和Dao层”的功能区分是什么


  1. modle层就是对应的数据库表的实体类。

  2. Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。

  3. Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断)。

  4. Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理。

补充:

一般java都是三层架构数据访问层(dao),业务逻辑层(biz 或者services),界面层(ui) action 是业务层的一部分,是一个管理器 (总开关),取出前台界面的数据,调用biz方法,转发到下一个action或者页面)。

模型层(model)一般是实体对象(把现实的的事物变成java中的对象),作用是一暂时存储数据方便持久化(存入数据库或者写入文件)作为一个包裹封装一些数据来在不同的层以及各种java对象中使用。

dao是数据访问层 就是用来访问数据库实现数据的持久化(把内存中的数据永久保存到硬盘中)。


DAO层与service层之间的交互是怎么实现的


首先这是现在最基本的分层方式,结合了SSH架构。modle层就是对应的数据库表的实体类。Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断)。Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理。以上的Hibernate,Struts,都需要注入到Spring的配置文件中,Spring把这些联系起来,成为一个整体。

Dao层Dao层实现类和Service层Service实现类的关系


你好,
我就我个人的理解讲一下。希望对你有所帮助,
service是业务层 ,功能是实现你需要的业务
dao层是数据访问层,代表要操作的数据。
关系是一般都是调用某个service去实现某个业务,但是在实现业务的过程中。需要访问数据。也就是说。会在service中调用不同的dao,访问不同的数据,来完成这个业务相关的数据 处理。
之所以分层是为了解耦合。也就是为了后期维护的时候修改的时候可以更加方便
比如说 : s事物需要访问 a b c 三个相关的数据。但是后面需要修改a 数据的处理逻辑,
如果你没有实现分层。那么就需要到service层中修改。
但是实现之后。就可以直接到访问a数据的dao层中修改相关逻辑.
类似mvc等分层架构。都是有这样的好处。
个人理解,如果有不足之处,可以指出,互相学习 !

Dao层到底是做什么的service和Dao层有什么关系说得具体一些


Dao层:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置。

dao层代码示例:

service层:主要负责业务模块的逻辑应用设计,Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。  

service层代码示例:

dao层和service层关系:service层经常要调用dao层的方法对数据进行增删改查的操作,现实开发中,对业务的操作会涉及到数据的操作,而对数据操作常常要用到数据库,所以service层会经常调用dao层的方法。

扩展资料

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

在实际开发中DAO层大多是对某张表进行增删改查,都是一些固定的语句,除非涉及到更复杂的service层业务逻辑,才可能要添加更复杂的DAO层方法。

参考资料:百度百科-DAO


service层注入service和注入dao的区别


如上图所示;
     1.在productService 中注入productDao时,进入一次AOP,相当于进入一次数据库(发起sql命令begin transaction 开启事务),调用保存方法时再发生一次commit命令, 当保存方法抛异常时,触发spring进入aop,发送rollback命令道数据库回滚数据。
   
    2.分步保存
     2.1 在保存图片信息时注入service,则进入两次aop,分别是进入imgService,和imgDao,调用过程跟上述相同,
     2.2 直接注入dao,则只进入一次aop.
     就程序执行过程而言,进入一次或两次aop没太大关系,事务的嵌套也不影响。关键在于,做分布式缓存的时候,手动配置aop,如果节点设置到service层的话,缓存机制监控不到dao层,直接注入dao并调用其中的方法,会使得缓存机制获取不到数据的变化,从而使数据库和缓存数据不一致。
常规的方法是注入service,这样于业务流程也比较好理解


dao层和service层分别是充当什么角色的,举个简单例子,小的在此谢了


dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的
service层是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service层,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那层
dao就是把数据存起来,之所以service的方法会有雷同只不过是因为service得需求不是很复杂不用再service里面完成太多包装或者处理过程可以直接调用dao的方法就完成的请求处理例如就要save一个对象,而这个对象是封装好的,dao里面有个方法专门save封装好的对象于是service的方法就仅仅调用一下就o了,函数签名自然很像了
service不能直接接触持久层,而dao是持久层或者直接访问持久层
有的时候只是为了分层清楚,为了将来scale up的时候方便我们才把service和dao分开,其实没必要分开的