精华内容
下载资源
问答
  • DAO是什么意思

    2021-05-15 11:10:38
    数据访问对象(data access object,DAO为某种类型的数据库或其他持久性机制提供一个抽象接口的对象。通过映射应用程序对持久的调用,DAO 提供一些特定的数据操作,而无需暴露数据库细节。这种隔离支持单一...

    数据访问对象(data access object,DAO)是为某种类型的数据库或其他持久性机制提供一个抽象接口的对象。通过映射应用程序对持久层的调用,DAO 提供一些特定的数据操作,而无需暴露数据库细节。这种隔离支持单一功能原则。它分离了应用程序需要访问哪些数据,就域特定对象和数据类型(DAO 的公共接口),而言,这些需求可以用数据库管理系统(DBMS)、数据库模式等满足(DAO 的实现)。

    data access

    尽管这种设计模式同样适用于以下内容:1、大多数编程语言;2、有持久化需求的大多数软件类型;3、大多数数据库。它在传统上与 Java EE 应用程序和关系数据库相关(通过 JDBC API 访问,因为它源于 Sun Microsystems 的最佳实践指南,该平台的“核心 J2EE 模式”)。

    使用数据访问对象的优点是应用程序的两个重要部分之间相对简单并严格分离,它们可以但不应该彼此了解任何东西,并且两者可预期的频繁和独立发展。改变业务逻辑可以依赖于相同的 DAO 接口,而对持久性逻辑的更改只要接口保持正确实现,就不会影响 DAO 客户端。存储的所有细节都隐藏在应用程序的其余部分中(见信息隐藏)。因此,可以修改一个 DAO 实现而不影响应用程序的其余部分,从而可能实现对持久性机制的更改。DAO 充当了应用程序与数据库之间的中介,它们在对象与数据库记录之间来回转移数据。用测试替身取代 DAO 可以促进代码的单元测试,使测试不依赖于持久层。

    在 Java 编程语言的非特定上下文中,数据访问对象作为一项设计概念可以用多种方式实现。这可以将应用程序中的数据访问部分分离为非常简单的接口,迁移到框架或商业产品。DAO 编码范例可能需要一些技巧。像是 Java Persistence API 和 Enterprise JavaBeans 之类的技术已内置在应用程序服务器中,可以在 JavaEE 应用程序服务器的应用程序中使用。商业产品如 TopLink 可以在基于对象关系映射(ORM)的产品上使用。流行的开源 ORM 产品包括 Doctrine (PHP)、Hibernate、iBATIS,以及 JPA 实现(例如 Apache OpenJPA)。

    使用 DAO 的潜在缺点包括抽象泄漏、代码重复和抽象反演。尤其是将 DAO 作为常规 Java 对象的抽象会隐藏每个数据库访问的高成本,并且可能强迫开发人员触发多个数据库查询来检索普通 SQL 查询中一次就可取回的信息。如果一个应用程序需要多个 DAO,人们可能发现自己对每个 DAO 重复基本上相同的创建、读取、更新和删除代码。不过,也可以实现一个处理常用操作的通用 DAO 来避免样板化代码。

    展开全文
  • dao层中已经有操作数据库的方法了,为什么还要service层去封装?有什么好处? tanghui12321|浏览 131990 次|举报 我有更好的答案 推荐于2017-10-06 18:44:59 最佳答案 首先解释面上意思,service...

    dao层中已经有操作数据库的方法了,为什么还要service层去封装?有什么好处?

    tanghui12321 | 浏览 131990 次 |举报
    我有更好的答案 
    推荐于2017-10-06 18:44:59
    最佳答案
    首先解释面上意思,service是业务层,dao是数据访问层
    呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作中的重中之重。
    我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,如果你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。好比主板上内存坏了,我换内存,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存都可以插上这个接口使用。这就是MVC的意义。
    接下来说你感觉service的意义,其实因为你现在做东西分层次不是那么严格,在一个你们做东西业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。
    再有不明白的追问,这是经验问题,呵呵,其实以后你就会懂。只是刚开始写的代码都是有个请求,我就去数据库取,业务几乎没有。

    --转自百度百科

    转载于:https://www.cnblogs.com/Entr0py/p/8776821.html

    展开全文
  • 这个问题我曾经也有过,记zhi得以前刚dao学编程的时候,都在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才工作...
    展开全文
  • 代码如下 ``` ... String hql ="FROM Users WHERE name=?... user = (Users)session.createQuery(hql).setParameter(0, userName).setParameter(1, userPwd).uniqueResult();...createQuery(hql).setParameter(),...
  • 在Java中VO , PO , BO, DAO ,POJO是什么意思 最近在项目中,遇到VO,我的天。。。那就一起学习回忆一下 首先简单说明下: O/R Mapping是Object Relational Mapping(对象关系映射)的缩写。简单来说,就是将...

    在Java中VO , PO , BO, DAO ,POJO是什么意思

    最近在项目中,遇到VO,我的天。。。那就一起学习回忆一下

    首先简单说明下:

    O/R  Mapping是Object Relational Mapping(对象关系映射)的缩写。简单来说,就是将对象和关系数据库绑定,用对象来表示关系数据。

    Java WEB三层架构咱们更需要熟练使用

    VO:值对象(Value Object)

    用new关键字创建,有GC回收通常用于业务层之间的数据传递,一般是抽象出的业务对象,可以和数据表相对应,也可以不。在web层,对应一个web页面或者swt界面,用一个VO对象对应一个界面的值。  

    PO:持久对象(Persistant Object)

    属性和数据库表中的字段一一对应,可以看成是数据库中的表相映射的java对象。由数据库insert产生,由数据库delete删除。其生命周期和数据库密切相关,但PO中不应该包含任何对数据库的操作。

    其java文件一般都是数据库表中字段属性和对应的get,set方法

    BO:业务对象(business object)

    主要作用是把业务逻辑封装成一个对象。这个对象可以包括一个或多个其他的对象。比如一个简历,有教育经历,实习经历,得奖情况等等,建立一个对应简历的BO对象处理简历,每个BO包含这些PO,这样处理业务逻辑时,我们可以针对BO进行处理。

    DTO:数据传输对象(Data Transfer Object)同时又DTO模式

    主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100哥属性。但是我们的界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端。这是我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构。到达客户端以后,如果用这个对象来对应界面显示,那么此时它的身份就转为VO

    DAO:数据访问对象(Data Access Object)同时又DAO模式

    主要用来封装对数据库的访问,包含了各种数据库的操作方法,提供数据库的CRUD操作。通过它可以把POJO持久化为PO,用PO组装为DTO、VO

    POJO:简单Java对象(Plain Ordinary Java Object)

    POJO是最常见最多变的对象,是一个中间对象,也是我们最常见的打交道的对象。

    一个POJO持久化以后就是PO

    直接用它传递,传递过程中就是DTO

    直接用来对应标识层就是VO

    画个图简单表示一下(借用别人的图)

    地址:http://jeoff.blog.51cto.com/186264/88517/

     

    转载于:https://www.cnblogs.com/doStudying/p/6492474.html

    展开全文
  • java中dao层和service层的区别,为什么要用service?

    万次阅读 多人点赞 2016-05-20 11:28:47
    首先解释面上意思,service业务dao是数据访问。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白...
  • dao层和service层的区别

    2020-03-27 17:59:58
    常见的系统架构有三层架构与MVC 三层架构 ...dao层只是访问数据库,业务逻辑跟它没关系,它只会访问数据库读取数据,不知道这些数据是什么意思、做什么用的。 service层,就是操作业务逻辑,它调取...
  • dao层和service层

    千次阅读 2015-05-14 10:40:02
    dao层中已经有操作数据库的方法了,为什么还要service层去封装?有什么好处? 首先解释面上意思,service业务层,dao数据访问层。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接...
  • springmvc 中dao层和service层的区别

    万次阅读 2016-05-16 09:18:41
    首先解释面上意思,service业务dao是数据访问。这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有...
  • mvc dao层、service层 到底怎么写?

    千次阅读 2017-12-25 19:29:01
    首先解释面上意思,service业务dao是数据访问。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有...
  • [SSM]springmvc 中dao层和service层的区别

    千次阅读 2018-05-15 11:40:12
    转自:http://blog.csdn.net/dopamy_busymonkey/article/details/51422392首先解释面上意思,service业务dao是数据访问。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接调用...
  • service与dao层的不同点

    2016-12-03 12:46:40
    首先解释面上意思,service业务dao是数据访问。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有...
  • 首先解释面上意思,service业务dao是数据访问。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白...
  • ddos攻击是什么意思

    2020-09-10 16:46:18
    DDoS,即拒绝服务攻bai击,近年来愈演du愈烈的一种攻击手段,其主要目的造成目zhi标主机的 TCP/IP 协议dao层拥塞、或者导致应用层异常终止而形成拒绝服务的现象。 一般来说指攻击者利用“肉鸡”对目标网站在较...
  • 最近学习spring框架,对依赖注入有些模糊,遂上网翻阅资料,做了下列总结,原博客为CSDN 南夏的spring的依赖注入是什么意思,侵删! Spring 能有效地组织J2EE应用各的对象。不管是控制的Action对象,还是业务...

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

dao层是什么意思