《客户关系管理系统-信息与控制工程学院计算机毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《客户关系管理系统-信息与控制工程学院计算机毕业设计说明书.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、xx建筑大学毕业设计说明书毕 业 设 计 题 目 客户关系管理系统 学院专业班级 信息与控制工程学院计算机 班 学 生 姓 名 性别 指 导 教 师 职称 2014年 6月7日摘要客户关系管理系统是典型的管理信息系统,其开发主要包括后台数据库的建立和维护以及前端web程序的开发。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求具备程序功能完备,易使用等特点。随着市场体系的日益完善,我们已经进入了一个买方市场时代。选择空间扩大、购买渠宽、消费心态和购买行为越发成熟,使客户再不会对某一企业或者产品盲目地保持绝对忠诚,如何不断改善客户关系,掌据更多的客户信息,提高客户满
2、意度;如何在日益激烈的市场竞争中把握机会,占有更大的市场份额;如何建立高效业务流程,降低运营成本,获取更多的利润,这些已成为每个企业面临的首要问题。本文介绍了客户关系管理系统的开发初衷和背景,系统的开发工具,面向对象开发的具体步骤,其中包括功能结构图,数据库表设计等必要的图形说明,本系统在设计方面使用Java语言,采用B/S模式,同时使用JSP技术进行基本页面的设计与功能实现,后台数据库选用SQL 2008数据库。关键词:客户关系管理系统;SQL SERVER2008 数据库;SSH框架;JSP技术 AbstractCustomer relationship management system
3、 is a typical information management system, which mainly include database creation and maintenance, and front-end application development. The former required strong data consistency and integrity of data, good safety database. For the latter requirement with the application functions, easy to use
4、features. With more perfect market system, we have entered a buyers market era. Choice of space to expand, purchase channel width, consumer attitudes and buying behavior become more mature, customers will no longer blindly certain companies or products to maintain absolute integrity, and how we can
5、improve customer relations, palm, according to more customer information, improving customer satisfaction ; how the increasingly fierce competition in the market the opportunity to capture greater market share; how to create efficient business processes, reduce operational costs, gain more profit, t
6、hey have become afraid of each enterprise the most important issue facing.According to the first few stages of the analysis and design, the system used in the design of B / S mode by Java language, while using JSP technology for the basic page design and implementation of function, use SQL 2008 data
7、base back-end database. Key words: Customer relationship management system; SQL Server2008 database; SSH framework; JSP Technology目录第一章 引言1第二章 项目概述22.1项目背景22.2项目开发意义22.3国内外研究情况32.4 课题的主要研究工作4第三章 系统分析63.1系统初步调查63.2 可行性分析63.2.1 技术上的可行性63.2.2 经济上的可行性73.2.3 操作上的可行性73.3项目需求分析7第四章 项目概要设计104.1设计原则104.2 开发工
8、具简介104.2.1 关于MVC114.2.2 关于SSH134.2.3 SQL Server 2008数据库及其特点154.2.4 B/S模式简介164.2.5 JSP技术介绍174.3总体框架204.4 系统业务流程分析204.5系统功能模块设计214.5.1 营销管理模块214.5.2 客户管理224.5.3 服务管理234.5.4 统计报表244.5.5 基础数据244.6 数据库设计254.6.1数据表清单254.6.2 数据库详细设计25第五章 项目实现325.1 用户登录模块设计325.2 用户浏览界面设计335.3 客户关系管理系统各个模块的实现345.3.1 营销管理345.
9、3.2 客户管理355.3.3 服务管理365.3.4 统计报表375.3.5 基础数据385.3.6 权限管理39第六章 系统测试406.1软件介绍406.2测试的作用和意义406.3测试方法406.3.1 测试人员406.3.2 机器测试406.4测试内容416.5测试结果41结 论42致 谢43参考文献44附录一 中文翻译 附录二 外文翻译原文 附录三 部分源代码44沈阳建筑大学毕业设计第一章 引言信息时代的今天,各企业商家所关心的不再局限于自身的产品质量、生产设备、员工的素质等问题,更多的是关心自己的销售群体即客户群,关心他们的想法、需求、购买目的等等相关方面的问题。一个企业要生存、要
10、发展,就是要不断的满足客户的需求,无论我们做出什么样的决策,最终都是为了这个目的。每个领域都有自身的生存法则,但无论这个法则如何变化,为客户服务的宗旨是不会变的。作为企业,我们只有不断地挖掘新客户,维护好和老客户的关系,占领市场客户群体的绝大多数份额,通过产品的创新、企业管理的创新、服务的创新,以此来抢占有限的客户资源、维护好企业和客户之间的关系、从而去更深的了解客户的需求动向,这样才能在整个领域取得一席之地。在一个商业环境中,也许有许多行动策略可以让企业活下来。但大多数行动策略都是围绕着收入和成本而展开的。在经济不景气的今天,出现了无数为获得较高回报而被迫削减成本的故事。而这些失败的关键点是
11、他们都是为如何去提高收入从而降低成本,而不是从根本上来设法在正确的时机向客户们销售更多正确的产品。因此,许多企业更应该迫切的去建立客户数据库,这就要求企业加强对客户信息资源的管理,从这不难看出企业当中客户关系的完善管理已显得至关重要。本次毕业设计将完成客户关系管理系统,实现营销管理、客户管理、服务管理、统计报表、权限管理等功能,从而提高公司的工作效率和质量。第二章 项目概述2.1项目背景客户关系管理现在就像一个烫手的山芋,大家都争相上客户关系管理系统,可是真正实施过程有遇到许多困难,不可能一口将其完全吃下,否则将烫伤自己。但是可以肯定是,随着这些阻力的减小,它必将为企业所广泛的应用。对于一个大
12、的公司来说,没有客户策略似乎是不可能的。但是企业要如何处理好这些问题,如何使客户关系管理不再烫手,可以很好的消化,仍然需要在许多方面下功夫,比如企业内部流程改进、客户服务部门的设立、员工素质提高等。信息时代,各企业高管所关心的不再仅限于自身的产品质量、生产设施、员工的技能素质,更多的是关心企业的销售群体(客户群),关心他们的想法、需求、购卖目的。众所周知,顾客就是我们的上帝,我们应该满足了上帝需求,上帝才能给我们带来利益。一个企业需要生存、需要发展,就是要不断的满足客户的要求,无论我们做出什么样决策,最终都是为了这个最终的目。每个领域都有他自己的生存法则,但无论这个法则怎么变化,为客户服务的宗
13、旨都是永远不会变的。作为企业,我们只有不停地挖掘新客户,维护好和老客户的关系,占有市场客户群体的优势份额,才能在整个领域取得一席之地。海尔总裁张瑞敏曾经指出:“客户资源决定企业核心竞争力”,上个世纪80年代是物品短缺的时代,而现在,信息时代则是客户短缺的时代。企业发展所需的各种资源(包括人力、物力、生产力)都是可以创造的,但每个领域中的客户资源确是有限的,所以通过创新(产品的创新、企业管理的创新、服务的创新)来抢占有限的客户资源、维护好企业和客户之间的关系、了解客户的需求动向,成为企业生存发展面临的重大问题1。2.2项目开发意义众所周知,计算机已经成为我们学习和工作的得力助手,甚至成为我们个人
14、生活的一个部分。而且,现在计算机的价格已经十分低廉,性能却有了飞速的进步。由于计算机可以代替人工进行许多繁杂的劳动,具备节省资源、提高工作效率、使敏感文档更加安全等特点,它已经被应用于许多领域。因此使用计算机来实现企业客户关系管理的计算机化已经成为当今时代发展的需要,也应该成为企业发展的一个趋势。应用计算机进行客户关系管理,归纳起来,主要有以下几点优势:(1) 可以方便地存储客户的档案,管理更为安全、高效;(2) 只需一到两名管理员对客户档案信息进行管理,节省大量人力; (3) 可以迅速查询及修改相关信息。通过本系统的开发设计,能够把客户关系维护者从繁重、传统的事务性工作如:客户档案增加、客户
15、档案查询、客户档案修改、客户档案删除、客户现状查询,漫无目的地访问客户等工作中解放出来,使得他们更专注于最需要智慧和经验的工作,因而提高人事管理的质量和效率。2.3国内外研究情况CRM(Customer Relationship Management)客户关系管理是20世纪90年代在美国出现的一种新的市场营销理念、思想、方法。它紧紧抓住市场营销客户关系管理这一关键环节,把传统市场营销模式转变为全新的市场营销模式。它经历了销售力量自动化系统(SFA)客户服务系统(CSS)呼叫中心(CALL CENTER)三次变迁,综合了现代市场营销(Marketing)和现场服务(Field Service)的
16、理念,并结合了CTI(计算机电话记成技术)和Internet技术快速发展起来,国内外有很多厂商推行CRM管理取得了非常好的效果,显示出CRM强大的生命力2。目前,国内外有更多的资本和厂商进入了CRM领域,或者在这方面加大了动作。如创智完成了在证券、银行、房地场、医药等多个领域的行业布局,用友启动了“金种子计划”,联成互动加强了进入中小企业SFA市场的力度,国际厂商Onyx、PeopleSoft也正是进军中国,连鼎鼎大名的微软也发布了自己的CRM解决方案,这些都给中国的企业提供了选择适合自己需要的CRM产品的机会和可能。可以说,国内很多企业推行客户关系管理已经基本具备条件。 随着我国国民经济建设
17、的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的客户关系管理系统是解决这一问题的必由之路。企业内部管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。而一个企业的最大利润来自市场,所以市场是现在的企业主要的战场,市场的主要争夺的是客户,那么怎么维护好客户关系,怎么开发更多的客户是当今企业的重之又重,所以科学的客户关系管理系统是企业所必需的。目前存在着许多企业客户关系管理系统
18、,一些企业和软件制作公司对此系统也有很深的研究,但是这些系统都存在一些地域性的问题,即某一个企业或部门开发的企业管理系统是针对该企业或者具体某一部门的实际情况而编制的,大多数情况下这样的系统只能在本企业或者部门使用,在别的地方使用时就会暴露出很多缺点。这样不但造成了资源的极大的浪费,同时也大大缩短了该软件的寿命,而且大型的管理系统需要专人维护和操作会花费人力和财力, 一般中小型企业承受不了,所以一种安全而且操作起来简单的小型客户关系管理系统必定是很受新生企业欢迎的。2.4 课题的主要研究工作企业客户关系管理系统是公司管理的一个重要内容,是一种典型的管理系统,其开发主要包括后台的数据库的建立、维
19、护以及前端的相应应用程序的开发两个方面的内容,系统的建立和维护主要要求其管理数据的系统性、规范性、自动性等特点,而前台的应用程序开发则要求做到各项功能要完备、操作要简便、易学易用等特点3。综合上述各项要求,本文首先分析了课题背景、开发目的以及国内外研究现状,阐述了客户关系管理系统的开发必要性。其次,通过对数据库技术的现状与发展,数据库系统的选择原则,系统开发工具的选择一系列问题的分析确定了系统的开发平台。接着管理信息系统基本理论指导下,详细给出了从客户关系管理系统总体设计到数据库设计、模块设计实现及测试的各个环节,最后对本系统作了客观评价指明了系统的现实意义,缺点以及系统的升级方向。因此,本课
20、题的主要研究工作具体表现在以下几个方面: 研究国内外的企业客户关系管理知识体系以及客户关系管理系统成熟度模型,分析企业客户管理理论研究现状及其存在的问题。 研究如何建立行之有效且适合企业的客户关系管理系统,并提出一套企业客户关系管理体系模型。 根据企业客户关系管理体系的要求,研究哪些功能应该由工资管理系统完成,即企业客户管理信息系统应该具备哪些功能。 通过了解公司企业客户关系管理体系的总体流程,检验本课题提出的企业客户关系管理体系模型的有效性及可行性。第三章 系统分析3.1系统初步调查详细了解和深刻认识客户关系管理系统的现状、发展方向、存在的问题和各级管理人员的信息需求是系统建设的重要基础。收
21、集到真实、准确和适用的相关信息,是系统开发的第一阶段系统分析阶段工作的重要内容。信息收集也是完成系统分析各项任务的基础。在系统建设中,建设者首先必须收集信息,了解情况,明确问题和目标,视具体情况决定工作方针4。该客户关系管理系统采取的是访问与实践相结合的调查方法。首先,通过提问的方式与用户进行交谈,收集有关信息,在访问时充分听取各方面的要求和希望,同时做好有关新系统的宣传工作;其次,通过参加业务实践了解系统,有目的的跟班学习,以达到比较深入细致地掌握工作流程中客户信息的增删改查等具体过程和内容。3.2 可行性分析系统的可行性分析的目的在于用最小的代价在尽可能短的时间内确定在现有的技术、经济和人
22、员素质等条件下该问题是否能够解决,是否值得去解决。其实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。一般应该从下述三方面研究每种解法的可行性:技术可行性,经济可行性,操作可行性。3.2.1 技术上的可行性 本系统的开发利用SQL Server 2008作为系统数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。现代高速电信网络的建设也为B/S结构系统提供了硬件的支持。使用Myeclipse作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类(型),给开发高性能系统提供了保障,为开发满足
23、客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。基于此,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此它在技术上是可行的。3.2.2 经济上的可行性 客户关系管理系统为企业在网络上提供了一个自动化办公的平台,使用户更加的了解企业的客户信息。满足企业用户在线进行营销管理,服务管理,统计报表,查询库存等要求,网站提升了企业在客户中的形象,使企业和用户联系更加密切,提高企业的经济效益。所以该客户关系管理系统的开发在经济可行性方面是可行的。3.2.3 操作上的可行性 考虑到现代企业员工已经比较熟悉使用计算机进行日常数据信息处理的工作,对于常
24、用的各种办公软件也比较熟悉。本系统操作简单易学,企业无需对员工进行培训,因此操作上完全可以接受。3.3项目需求分析 现行的CRM软件还处于起步阶段,功能模块结构不尽相同,但是其基本的需求是一样的,其主要技术需求应包括六个方面5: (1)信息分析能力 CRM有大量客户和潜在客户的信息,企业应该充分的利用这些信息进行分析,使得决策者掌握的信息更加完全,从而能及时的做出决策。良好的商业情报是企业成功的一半。 (2)对客户互动渠道进行集成的能力 对多渠道进行集成与CRM解决方案的功能部件的集成是同等重要的。不管客户是与企业联系还是与销售人员联系,于客户互动都应该是无缝的、统一的、高效的。同一的渠道还能
25、带来内部效益的提高。 (3)支持网络应用的能力 在支持企业内外的互动和业务处理方面,Web的作用越来越大,这使得CRM得网络功能越来越重要。如,网络可以为电子商务渠道提供支持。为了使客户和企业雇员都能方便应用CRM,需要提供标准化的网络浏览器,使得用户几乎不需训练就能使用系统。 另外,如果通过网络为客户提供在线反馈的话并能有专人及时传达信息给公司的售后服务部门,这将为公司留住客户(尤其是距离较远的)并使业绩添砖加瓦。 (4)建设集中的信息仓库的能力 采用集中化的信息、实时的客户信息,可使各业务部门和功能模块间的信息能统一起来。 (5)对工作流进行集成的能力 工作量是指把相关文档和工作规则自动化
26、安排给负责特定业务流程中特定步骤的人。CRM解决方案应具有较强的功能,为跨部门工作提供支持,使这些工作能动态的、无缝的集成。 (6)与ERP功能的集成 如果CRM与ERP和财务、库存、制造、分销、物流和人力资源等连接起来,使之成为一个客户互动循环,这种集成能使企业在系统间搜集商业情报,而不是低水平的数据同步6。 根据上述的分析本系统分营销管理、客户管理、服务管理、统计报表、基础数据和权限管理六个模块。 营销管理:包含销售机会的管理和对客户开发过程的管理,营销的过程是开发新客户的过程。对老客户的销售行为不属于营销管理的范畴。客户经理有开发新客户的任务,在客户经理发现销售机会时,应在系统中录入该销
27、售机会的信息。销售主管也可以在系统中创建销售机会。所有的销售机会由销售主管进行分配,每个销售机会分配给一个客户经理。客户经理对分配给自己的销售机会制定客户开发计划,计划好分几步开发,以及每个步骤的时间和具体事项。制定完客户开发计划后,客户经理按实际执行请跨功能填写计划中每个步骤的执行效果。在开发计划结束的时候,根据开发的结果不同,设置该销售机会为“开发失败”或“开发成功”。如果开发客户成功,系统自动创建新的客户记录。客户管理:客户信息是公司资产的构成部分之一,应对其进行妥善保管、充分利用。每个客户经理有责任维护自己负责的客户信息,随时更新。在本系统中,客户信息将得到充分的共享,从而发挥最大的价
28、值。服务管理:客户服务是客户管理的重要工作。通过客户服务我们的销售团队可以及时帮助客户解决问题、打消顾虑,提高客户满意度。还可以帮助我们随时了解客户的动态,以便采取应对措施。统计报表:对客户下单的总金额进行统计,了解客户对企业的贡献。根据服务类型对服务进行统计。查看已经确认流失的客户流失记录。列出符合查询条件的已经确认流失的客户流失记录。基础数据:对系统中需要已选择的方式输入的输入项的候选项,统一通过数据字典来配置。比如服务类型、客户等级等。权限管理:管理注册用户的使用权限,以及增加用户。沈阳建筑大学毕业设计第四章 项目概要设计4.1设计原则为了使本系统功能完备,操作简便,最大限度的提高软件的
29、质量,从而满足用户的实际需要,在设计开发过程中遵守了如下原则:(1)合法性原则:依据客户关系管理系统的工作规定以及要求,参照核算实际的工作情况,进行诸如客户信息增删改查等工作。(2)实用性原则:适合客户关系管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,一边扩充功能。(3)易操作原则:要求设计的系统功能齐全,界面友好,操纵方便,必要的地方进行提示。(4)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,尽可能做好代码注释工作。(5)安全性原则:首先,从系统架构看,本系统采用BS模型,从而使服务器数据源与客户端分离,保证了数据的物理独立性
30、;其次,本系统的用户授权机制通过角色的定义管理实现,通过定义某些角色能进行的操作权限,和定义用户拥有的角色,限定用户的操作权限,实现对用户的授权。4.2 开发工具简介根据上述系统的特点和要求,本次设计的客户关系管理系统采用myeclipse9来开发,MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多
31、项功能7。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。数据库使用的是SQL Server 2008,它是一种综合的数据平台,可以为运行安全的业务关键应用程序提供企业级可扩展性、高可用性和高级商业智能功能。在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2008 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。SQL Server 2008全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。4.2.1 关于MVC MVC英文即M
32、odel-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将
33、用户界面的输入数据和请求传递给控制和模型。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否
34、优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显
35、,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求
36、。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。再次,由于一个应用被分离为三层,因此有时改变其中的一层就能
37、满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。MVC的设计实现并不十分容易, 理解起来比较容易,但对开发人员的要求比较高。MVC只是一种基本的设计思想,还需要详细的设计规划。模型和视图的严格分离可能使得调试困难一些,但比较容易发现错误。经验表明,MVC由于将应用分为三层,意味着代码文件增多,因此,对于文件的管理需
38、要费点心思。综合上述,MVC是构筑软件非常好的基本模式,至少将业务处理与显示分离,强迫将应用分为模型、视图以及控制层, 使得你会认真考虑应用的额外复杂性,把这些想法融进到架构中,增加了应用的可拓展性。如果能把握到这一点,MVC模式会使得你的应用更加强壮,更加有弹性,更加个性化。4.2.2 关于SSH SSH(Struts,Spring,Hibernate)Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装8。(1)StrutsStruts对Model,View和Controller都提供了对应的组件。分为Struts1和Struts2,区别甚大。 Act
39、ion,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。Model部分由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。View部分采用JSP(或HTML、PHP)实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的
40、标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。Controller组件有两个部分组成系统核心控制器,业务逻辑控制器。系统核心控制器,对应ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理,对应Action部分。(2)Spring部分Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创
41、建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的目的是解决企业应用开发的复杂性,使用基本的JavaBean代替EJB,并提供了更多的企业应用功能简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量:从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式
42、的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转:Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意
43、识)其它的系统级关注点,例如日志或事务支持。容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留
44、给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。(3)Hibernate部分Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分
45、别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session接口:负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将
46、HttpSesion对象称为用户session。SessionFactory接口:负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory10。Configuration接口:负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置
47、,然后创建SessionFactory对象。Transaction接口:负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。4.2.3 SQL Server 2008数据库及其特点SQL Server 2008 通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2008 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能9。从CEO 到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQL Server 2008全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。SQL Server 2008的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统。SQL Server 2008引进了一套集成的管