什么是数据持久层
2EE的三层结构是指表示层(Presentation),业务逻辑层(Business Logic)以及基础架构层(Infrastructure),这样的划分非常经典,但是在实际的项目开发法中,开发者通常对三层结构进行扩展来满足一些 项目的具体要求,一个最常用的扩展就是将三层体系扩展为五层体系,即表示层(Presentation),控制/中介层(Controller /Mediator)、领域层(Domain),数据持久层(Data Persistence)和数据源层(Data Source)。它其实是在三层架构中增加了两个中间层。控制/中介层位于表示层和领域层之间,数据持久层位于领域层和基础架构层之间。由于对象范例和关 系范例这两大领域之间存在阻抗不匹配,所以把数据持久层单独作为J2EE体系的一个层提出来的原因就是能够在对象-关系数据库之间提供一个成功的企业 级映射解决方案,尽最大可能弥补这两种范例之间的差异。三种持久层主流解决方案1、JDBC许多开发者用JDBC进行数据库程序的开发。此中方式很多情况下都使用DAO模式,采用SQL进行查询。虽然用此方式可以使应用程序代码与具体的数 据库厂商和数据库位置无关,不过JDBC是低级别的数据库访问方式,JDBC并不支持面向对象的数据库表示。JDBC数据库表示完全围绕关系数据库模型。 在大型应用程序的DAO中书写这样的代码,维护量是非常大的。2、EJB在J2EE的规范中,为EJB定义了两种持久化的解决方案:一种是BMP,另一种是CMP。其中CMP不需要将SQL语句加入到代码中。目前,在采 用J2EE的应用中,EJB CMP方式得到了广泛应用。更加引人注意的是,随着EJB规范的发展,CMP也包含了一些高级关系的内容。但是,CMP的使用比较复杂,对很多开发人员来 说比较难以掌握。而且,不是在所有的情况下都适合在系统中采用EJB,而且想要非常清楚的了解EJB规范也是非常费时的。在用EJB编码前,先要让专家理 解API,然后需要了解每一个容器部署时所要关注的技术。此外,许多情况下商用容器的性能和支持也不是很好。3、JDOJDO是一个存储java对象的规范,JDO规范1.0的提出可以使你将精力集中在设计Java对象模型,然后在企业应用软件架构的不同层面中存储 传统的Java对象(Plain Old Java Objects,简称POJOs),采用JDOQL语言进行SQL操作。一些公司(包括sun)企图根据JDO规范进行设计并实现JDO产品,然而他们都 不能很好的进行实现,并且性能优化上比较差。持久就是对数据的保持,即对程序状态的保持。通常通过数据库实现持久层是把数据库实现这块当作一个独立逻辑拿出来。说白了,就是数据库程序是在内存中的,为了使程序运行结束后状态得以保存,就要保存到数据库使用ORM(对象关系数据库映射)技术可以避免代码直接操作数据库,增加可移植性,可扩展性,可维护性。持久层其目的是通过持久层的框架将数据库存储从服务层中分离出来是,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。
数据持久层是什么意思?
数据持久层位于领域层和基础架构层之间。由于对象范例和关系范例这两大领域之间存在“阻抗不匹配”,所以把数据持久层单独作为J2EE体系的一个层提出来的原因就是能够在对象-关系数据库之间提供一个成功的企业级映射解决方案,尽最大可能弥补这两种范例之间的差异。扩展资料:J2EE的三层结构是指表示层,业务逻辑层以及基础架构层,这样的划分非常经典,但是在实际的项目开发法中,开发者通常对三层结构进行扩展来满足一些项目的具体要求。一个最常用的扩展就是将三层体系扩展为五层体系,即表示层、控制/中介层、领域层、数据持久层和数据源层。在J2EE的规范中,为EJB定义了两种持久化的解决方案:一种是BMP,另一种是CMP,其中CMP不需要将SQL语句加入到代码中。在采用J2EE的应用中,EJB CMP方式得到了广泛应用。更加引人注意的是,随着EJB规范的发展,CMP也包含了一些高级关系的内容。但是,CMP的使用比较复杂,对很多开发人员来说比较难以掌握。而且,不是在所有的情况下都适合在系统中采用EJB,而且想要非常清楚的了解EJB规范也是非常费时的。在用EJB编码前,先要让专家理解API,然后需要了解每一个容器部署时所要关注的技术。此外,许多情况下商用容器的性能和支持也不是很好。参考资料:百度百科-数据持久层
软件系统的分层结构
软件系统的分层结构:1、第一层:基础架构基础架构指云平台、操作系统、网络、存储、数据库和编译器等。随着目前云计算越来越普及,很多的中小型公司都选择了大公司的云计算平台,而不是自己研发和维护基础架构。2、第二层:中间件与大数据平台(1)中间件架构。例如分布式服务中间件、消息中间件、数据库中间件、缓存中间件、监控系统、工作流引擎和规则引擎等。(2)大数据架构。例如开源的Hadoop生态体系,Hive、Spark、Storm、Flink等。3、第三层;业务系统架构(1)通用软件系统。例如最常用的办公软件、浏览器、播放器等。(2)离线业务系统。例如各种基于大数据的BI分析、数据挖掘、报表与可视化等。(3)大型在线业务系统。例如搜索、推荐、即时通信、电商、游戏、广告、企业ERP或CRM等。
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处
软件的三层结构一般指的是 MVC
M 是model的简称是指实体层
V是view的简称是指视图层
C是Controller的简称是指控制层
具体可查看百度百科http://baike.baidu.com/link?url=gTAVxdILhRi9jtrr0OefqZKaCM8zOUkZOq91L8IDBH6ic0LdKxv51gI8LppBr9t_7Iy6spb037lZr5nJHHv-jGRFhxpmck4PCHz6mrXF_UuYC4YJo4at41C3p63ijQxBP83XY8IezO3e36hkWrr-HBKRUEbgVDSo9ZG7abXO5caLlcYKWTma9Jie1CJvz_6M
MVC的优点
1.低耦合性
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
2.高重用性和可适用性
随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
3.较低的生命周期成本
MVC使开发和维护用户接口的技术含量降低。
4.快速的部署
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
5.可维护性
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
6.有利于软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。