MVC+ADO模式
本文摘自:http://www.paper.edu.cn 基于MVC+DAO设计模式的Struts框架应用 鲍嘉鑫
在Model层,如果数据源发生改变,必然导致不同的数据访问,JavaBean也必然被修改以寻找新的数据源。执行业务逻辑时,真实主题的实现是不相同的,但在实现真实主题前后必然会有相同或者重复执行的步骤和过程,造成代码重复。而且在Servlet中,如果直接调用真实主题实现类,必然带来很强的耦合性,不易于维护。
针对以上问题,产生了基于MVC模式Model层的DAO模式(Data Access Object),主要由工厂类(Factory)、代理类(Proxy)、实现类(DAOImpl)、DAO接口和值对象类(VO)以及数据库连接类组成。
(1)Factory类:用来实例化所操作的对象。
(2)Proxy类:代替真实主题实现类完成所有工作,使得真实主题实现类可以专心完成真实主题,而准备工作和收尾工作全部由代理类完成。
(3)DAOlmpl类:完成数据访问真实主题的业务逻辑处理,得到最终用户所希望获得的数据信息。
(4)DAO接口:定义所需要的具体操作方法。
(5)VO类:封装数据库表,1个vo类代表一张表,1个vo类对象代表表中的1条记录。通过该对象的属性和相应的setter方法和getter方法来对应设置或得到数据库表中的字段。
(6)DBConnection类:专门用于连接数据库,可根据不同的数据源和持久性数据存储修改类的属性,减少了主题实现类的工作。MVC+DAO模式,将业务逻辑处理功能进一步细分,虽然前期开发代码量有所增加,但在大中型项目中的优势还是很明的,将业务对象和数据实现彻底分离,可移植性和可维护性大大增强,简化了业务模块,提高了系统整体可读性和开发效率。当然,这种设计模式也仍然存在DAO对象和SQL语句嵌套和耦合的缺陷。
MVC+ADO模式的更多相关文章
- MVC开发模式下的用户角色权限控制
前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据 ...
- servlet jsp jdbc bootstrarp mvc分层模式实现的第一个项目
登录注册界面 这是一个注册和登录的界面 用到了前端页面中自带的一点H5的标签和属性---巩固下 邮箱格式 :type="email" 不能为空: required=" ...
- MVC开发模式之Servlet+jsp+javaBean
Servlet+jsp+JavaBean组合开发是一种MVC开发模式,控制器Controller采用Servlet.模型Model采用JavaBean.视图View采用JSP. 1.Web开发的请求- ...
- Extjs MVC开发模式详解
Extjs MVC开发模式详解 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式, ...
- 简述MVC框架模式以及在你(Android)项目中的应用
标题是阿里电话面试的问题,一直以为自己很清楚MVC模式,结果被问到时,居然没法将MVC和Android中各个组件对应起来,所以,面试肯定挂了,不过面试也是学习的一种方式,可以知道大公司看中什么,以及自 ...
- 利用MVC编程模式-开发一个简易记事本app
学了极客学院一个开发记事本的课程,利用自己对MVC编程模式的简单理解重写了一遍该app. github地址:https://github.com/morningsky/MyNote MVC即,模型(m ...
- 什么是MVC开发模式以及它和传统开发模式的区别
Model1模式:使用纯JSP或者JSP+JavaBean开发,存在如下缺陷:JSP页面中混合了HTML和JAVA代码,从而给代码的开发和阅读带 来了麻烦:系统后期维护和扩展非常困难,例如在JSP页面 ...
- MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)
前言: 刚刚学完了MVC,根据自己的感悟和理解写了一个小项目. 完全按照MVC模式,后面有一个MVC的理解示意图. 用MVC模式重新完成了联系人的管理系统: 用户需求: 多用户系统,提供用户注册.登录 ...
- [Buffalo]MVC架构模式
MVC架构模式:即Model(模型)-View(视图)-Controller(控制器). 很多人将MVC和所谓的“三层架构”进行比较,其实两者并没有什么可比性,MVC更不是分别对应着UI.业务逻辑和数 ...
随机推荐
- U盘检测软件:ChipGenius,MyDiskTest
几年前的事情了.有一次去北邮玩,看到校园里有卖U盘的摊位,问了问价格,8GB的金士顿U盘99块钱.正好头一天有个同事跟我说最近U盘降价了,8GB才99,于是心里一痒痒就买了一个.回来用着就感觉不对劲, ...
- XHProf 初探
XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调 ...
- Course(简单的字符串处理问题)
Course 时间限制:1000 ms | 内存限制:65535 KB [问题描述] There is such a policy in Sichuan University that if yo ...
- 有关Gcd,Lcm的一点小结论
先介绍两个: 大数的Gcd Stein+欧几里德 function stein(a,b:int64):int64; begin if a<b then exit(stein(b,a)); the ...
- CNZZ公告:近期无法获取百度关键词
今天登录cnzz网站统计,出现一条公告,说是“关于近期无法获取百度关键词的公告”,内容如下: 近日部分用户反馈百度搜索词流量出现不同程度的下降.经排查,是由于百度搜索引擎调整了URL规则,取消了来源U ...
- #308 (div.2) A. Vanya and Table
1.题目描写叙述:点击打开链接 2.解题思路:本题是一道简单的模拟题.每次扫描一个输入的长方形,然后将内部全部点都+1,终于统计数组全部元素的和就可以. 3.代码: #define _CRT_SECU ...
- 2.一步一步学c#(二):核心c#
简单的控制台应用程序. 代码(它有把某条消息写到屏幕上的一个类组成) 编译并运行程序得到结果: 在上面的代码示例中,前几行代码与名称空间有关,名称空间是把相关类组合在一起的方式.namespace关键 ...
- 【微信公众号】使用a标签打开链接显示空白
window.location.href 改成 top.location.href
- Unity UGUI在鼠标位置不同时 图片浮动效果
/// <summary> /// 在鼠标位置不同时 图片浮动效果 /// </summary> public class TiltWindow : MonoBehaviour ...
- jira使用
JIRA的生产者把JIRA定义为Professional Issue Tracker,即它是一个专业的问题跟踪管理的软件.这里的"问题"对应的英文单词是Issue,所以含义比较广, ...