model ,orm,dao,service,持久层 ,mvc 这些名词在java中的概念?
这些概念不针对某个特定的编程语言。
view层:结合control层,显示前台页面。
control层:业务模块流程控制,调用service层接口。
service层:业务操作实现类,调用dao层接口。
dao层:数据业务处理,持久化操作
model层:pojo,OR maping,持久层
借别人一张图,希望题主能理清楚层间关系:
企业应用开发中,可以将系统分为三层:表示层、业务层、持久层,就是所谓的三层架构。三层各有各的架构模式。其中表示层常用架构就是MVC,业务层常用架构模式分为事务脚本模式和领域模型模式等,持久层架构模式有入口、数据映射器等。
所谓MVC,就是表示层的一种架构模式。MVC又分为模型(Model)、视图(View)、控制器(Controller)三个部分。网上资料很多,你看一看。
事务脚本架构模式,是业务层架构模式中的一种,很适合业务逻辑简单、团队面向对象能力不足的情况下使用。事务脚本模式是组织业务逻辑的一种方式,这种模式下,业务逻辑由service+dao+贫血的业务对象POJO组成。Service封装表示层的请求,每个请求封装成service类的方法。对持久层的访问通过DAO。业务对象用POJO表示,这些POJO只有属性,没有方法,因此称为贫血的领域对象。
持久层负责将业务层中的业务对象持久化到数据库中。ORM,就是对象/关系型数据映射器,Hibernate就是一种ORM。ORM封装对数据库的访问操作,直接把对象映射到数据库,这样程序员就不用花大量时间写jdbc访问数据库的代码。
要熟悉这些概念,建议你看两本书,一本是《企业应用架构模式》(Martin Flower所著,大师之作),一本是《pojos in action》(有中译本的)。
model ,orm,dao,service,持久层 ,mvc 这些名词在java中的概念?的更多相关文章
- spring MVC 管理HttpClient---实现在java中直接向Controller发送请求
在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在java代码中直接向controller发送请求,这时可以使用HttpCilent实 ...
- 010商城项目:商品类目的选择——Dao,Service.Action层的分析
我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: ...
- 表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)
转自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持久层(Hibernate)之间的松 ...
- 表现层(jsp)、持久层(dao)、业务层(逻辑层、service)
转自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持久层(Hibernate)之间的松 ...
- JavaEE中表现层、持久层、业务层的职责分析(转载)
表现层.持久层.业务层 注:本文转载于:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持 ...
- Mybatis学习之自定义持久层框架(一) 为什么要用框架而不直接用JDBC?
前言 说起Mybatis,相信大家都不会感到陌生,它是一款优秀的持久层框架,应用于java后端开发中,为客户端程序提供访问数据库的接口. 我们都知道,JDBC是Java语言中用来规范客户端程序如何来访 ...
- 第80节:Java中的MVC设计模式
第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...
- MVC中model、dao、view、controlller、service之间的关系
Model:是事物的模型,如Person.java,定义人的属性行为.pojo,OR maping,持久层 Dao:是持久化操作代码编写处,与数据库对接,如对Person进行增删改查. Service ...
- 为什么三层架构中业务层(service)、持久层(dao)需要使用一个接口?
为什么三层架构中业务层(service).持久层(dao)需要使用一个接口? 如果没有接口那么我们在控制层使用业务层或业务层使用持久层时,必须要学习每个方法,若哪一天后者的方法名改变了则直接影响到前面 ...
随机推荐
- Mysql数据库If语句的使用
MySQL的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 [sql] view plain copy 如果 expr1 是TRUE (expr1 & ...
- hdu 2544 最短路(两点间最短路径)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2544 方法一:dijkstra算法,求两点之间最短路径. /*********************** ...
- bat批处理延迟运行脚本
@echo off:aaapause 这里是你需要运行的程序for /l %%i in (0,1,10000) do echo %%i>nulgoto aaa 当然bat延迟运行还有其他的一些方 ...
- App store 应用审核由于 IPv6 网络问题被拒的一点分析
App store 应用审核由于 IPv6 网络问题被拒的一点分析 六月以后陆续有一些软件提交市场的时候被拒了,症状基本就是无法登陆啥的.我们公司的应用也未能幸免. 很多同学也想了不少办法,申诉. ...
- 【ARM】2410裸机系列-uart串口通信
开发环境 (1)硬件平台:FS2410 (2)主机:Ubuntu 12.04 FS2410串口的原理图 串口UART寄存器配置 配置TXD0与RXD0(GPH2.GPH3) 设置波特率(UBRDI ...
- 使用ViewPager和Fragment实现滑动导航
ViewPage是android-support-v4.jar包提供的用于页面滑动的库,android-support-v4.jar是google推荐使用的一个类库,在项目中使用之前,你必须其添加到项 ...
- MySQL load数据的时候自动更新时间
MySQL load数据的时候自动更新时间 前提 CREATE TABLE table_name ( dt varchar(255) NULL , ctime timestamp NULL ON UP ...
- android 修改listview item view 的方法
具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View vie ...
- 让cpu跑到100%的bat文件
请你新建一个叫“virus.bat”的批处理文件,里面填写上如下三段命令: Echo "welcom to the aqjava's world"Tree /fCall virus ...
- C语言 · C++中map的用法详解
转载自:http://blog.csdn.net/sunquana/article/details/12576729 一.定义 (1) map<string, int> Map ...