96SEO 2026-02-19 11:48 8
设计和实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89273409

随着互联网的高速发展市场经济的信息化让企业之间的竞争变得为解决快速把握客户的需求变化增加客户和企业的互动降低企业的服务成本把信息的分析和加工成为企业脱颖而出的创新点等问题。
那么客户关系管理孕育而生。
客户关系管理系统的目的就是通过全新的管理理念整合客户信息资源了解和满足客户的动态需求从而提高企业效益。
论文的主要工作有首先简单介绍研究CRM客户关系管理系统的背景。
其次简单介绍下该系统需要用的技术和框架--SSH和JSP。
然后由需求分析决定的系统设计方案再到系统详细设计从系统的构架功能模块关键的技术点进行对CRM的开发。
在采用Myesclipe作为开发工具MySql作为数据库支持结合SSH框架实现。
随着信息的快速发展企业在传统的摸索上融合现代化信息科技是时代进步的选择。
企业信息化是企业在生产产品销售产品产品跟踪上更加科学更加有效更加透明。
这样做带有的结果就是一方面让企业内部更加干净有积极性一方面为企业带收益客户都看到企业的努力形成更多的客户资源增强企业竞争的过程。
由以经验累积占主导参照以往的类似做法独断性的决策思想和做法慢慢的以科学为依据数据为参照的现代信息做法总结的说这个转型是现代科技增强的后果慢慢的在加强对整体的了解和更大化的公开公司的决策。
让数据库代替纸张以历史数据为例以全局的客观的分析为榜样大大加强其科学性。
客户关系管理CustomerRelationshipManagement顾名思义就是客户与企业关系利益的管理他的中心乃至核心思想思路就是客户价值至上以信息化技术为手段对录入的客户材料信息进行深刻剖析满足客户需求打造优质服务的基础上吸引广大的客户资源同时把他们发展成为企业公司的潜在客户资源在提高客户对企业的满意度评价的时候也把企业的市场的竞争力势头给扩大了。
客户信息分析(Customer)包括客户的详细信息爱好等产品信息分析(Product)包括产品设计产品信息等
这客户与资产的相对变化标志着在随着社会发展的企业的思想都在变化企业公司的客户资源价值取代原本的有形的产品资源成为中心把客户资源当做无形的资产打破传统的有形资产的理念多方式赢得客户的满意。
所以’客户是上帝’’客户的利益高于一切’的理念在悄无声息的推广。
在商品活动的早期收入的增长来源于新客户的获取随着时间推移新客户的获取变得困难且成本昂贵。
保证现有客户的忠诚度上并提高竞争能力生命周期价值就体现了他的独特。
客户生命周期价值CLV的研究是针对长期客户关系是指客户或潜在客户在一段时间内用目前货币价值来计算的预期价值。
长期合作关系能给双方带来明显的利益同时可以降低交易的不确定降低交易资本赢得交易市场。
CRM系统始终关心的是客户的多少、产品的销售多少当服务多了客户具有权利对产品和服务的质量去比较然后选择以最适合的服务来服务客户的每个时间段千奇百怪显个性化的需求。
所以CRM的作用主要为企业提供了对客户及所需产品的统计。
所以CRM系统的开发有如下的意义
提高效率的说法是和传统的管理行业相比较的。
CRM信息化的技术手段首先带动的就是效益问题相比传统的电子表格和管理是更灵活了工作带有的成本也低下去了。
其次就是CRM业务的操作在操作手册上就有描述少去了巨额的培训费等东西。
在如今的时代抓住每一个机会抓住每一个需求就是一种效益。
拓宽市场是每一个企业发展路上的必经路口但是呢盲目的口号和没有实质性效益的动作都是只会走反路CRM系统拥有客户信息资源产品信息资源活动跟进调查财务金融等一系列的有目的性和风险性的分析技术为每一个营销活动保驾护航。
保留客户的最好最有效的方法就是在交易的过程中让客户得到更多的关怀和照顾只要有网络的地方就可通过访问固定的网址登陆到CRM客户关系管理系统上使用现有比较简单的方式方法例如说电话网络查询等手段让广大的客户朋友们享受到公司企业对他们推送最为快捷的一对一的高质量服务这让客户对公司就有个好的印象留在心底。
这也就为后期的发展潜在客户或保存旧客户提供者不错的捷径。
Management)就被人研究并初步提出来了同时也经历时间的磨练才完成看今天的比较成熟的理论CRM是一种集合理论和技术的营销策略。
首先对在企业这边来说中心文化技术以客户资源为企业价值推送适合的服务为客户而在客户这边呢就为企业对自己的服务进行评级满意度最终的想法就是实现客户和公司企业的双向满意。
CRM应该注入的观念是以客户为本。
首先呢转变传统的看得见的资产才叫资产的观念把客户的信息资源当做企业的依靠的动力满足好客户的特殊化需求建立起和加深好客企两者之间的那种微弱的关系从而独树一帜。
对CRM客户关系管理系统的信息化技术的摸索和探究。
我国的软件it行业自从1999年对CRM投入了关注的目光以后随着我们信息化技术的波浪般推动在一定程度上为CRM的推广铺下了一层科技的土壤数据库理论的建设自动化数据信息互联网的发展都在为软件行业的发行推波助燃。
而且我国的产业结构也需要软件信息来加快节奏加快步伐例如提到的金融业电信产业等都需要CRM的支撑才能更高一层楼。
在特色性上我国的CRM还很孱弱需要企业面对CRM敢吃也不敢吃的纠结CRM带来的效益是好的但是部署的效果往往差强人意。
所以CRM客户关系管理系统更应该在新时代去探索。
该论文的中心思想就是基于java的CRM客户关系管理系统的设计和实现提出了开发该系统所要面对的困难和应对方案本文的工作内容有
第四章数据库设计对数据库中表字段进行设计和创建并给出E-R图。
平台模式。
在客户端上装置浏览器Browser如360、Firefox服务器端就需要安装数据库例如Oracle数据库、Mysql数据库、SqlServer2008或者SqlServer2010。
浏览器经过
Web服务和Web服务器进行数据流转服务器再和数据库进行数据的对接。
B/S
平台模式中第一层的是客户端第二层的是Web服务层,可以由一台或多台服务器构成可以动态的根据应用的需要增加或者减少服务器的个数因此Web服务层是动态变化的第三层的是数据层组成部分是数据库系统和持久化层。
系统维护时只需要对服务器进行升级或者其他操作但是对浏览器就不需要做出巨大维护变动。
这样客户端可以变“瘦”,而服务器端则越来越“胖”但是更加的安全便捷。
如图2-1所示
三层架构设计模式分为三个部分M模型V视图C控制每个部分都有应该有的功能和任务然而他们又是一个整体共同解析用户的请求并返结果。
层与层之间的代码、逻辑的拆开使得系统的整体性更清晰。
如图2-2
视图View视图是最先也是唯一一个和用户面对面交流的层次也就是用户能用肉眼看到的。
在Web
应用程序中应用程序的界面的处理和设计变得多样化。
视图层没有对传递的数据进行处理的功能就是对数据提供不同形式的呈现输出方式。
模型(Model)经过了模型处理的数据可以通过定义好的视图去呈现结果说到具体的模型模型就是明确定义了一对业务规则的数据。
模型的另一个优点就是支撑模型的代码可以被多个视图重用使用减少了代码的冗余度。
控制器(Controller)用一个形象的比喻控制器就是一个人的大脑起到的是关键的调度作用他的过程是这样的当用户的请求被发出后控制器接纳申请内容但是对申请不做处理然后就转发请求信息给相应的模型和视图去处理和呈现数据结果。
CoreBeanFactory是SpringCore最基础的组成工厂模式的设计方式的使用就是希望每次调用对象的时候就去创建浪费资源把应用程序的代码和配置信息分离开来达到互不干扰的目的。
Spring
DAO数据访问层就是dao这个模块的最强大的作用就是操作Hibernate下的持久化对象。
Spring
Web容器web容器存在的目的是为该系统程序访问上下文信息。
LOC控制反转(依赖注入)在使用控制反转的程序中对象不会被直接创建而是规定怎样去创建它们。
在配置文件是用来描述组件和功能怎么样进行合理的组合。
对象由容器所创建对象的必要属性也能通过容器进行设置最后容器通过配置管理将各部分联系在一起并调用方法。
表2-1所示是控制反转的类型一般来说loC容器由采用后两种实现模式。
服务需要专门的接口通过接口由对象提供这些服务可以从对象查询服务的依赖性
框架使用的非常妙的地方是运用了数据库到java类的反射体系通过对关系映射文档进行
解析然后就可以通过一系列的层次对象操作数据库数据它和JDBC有很大的不同也有很多相同之处相同之处就在于Hibernate框架和JDBC
都是与数据经常操作查询数据库数据返回前台或者就是前台数据存储在数据库里面。
Mapping从字面上理解及时对象关系映射这个功能就很有用处了定义了需要的持久化对象后还需要对实体对象和数据库的表名进行一一对应的联系。
框架基本组成是有Session、SessionFactory、Transaction、Query、Criteria
、Configuration等六个核心接口。
下面就逐一对这几个接口说明下我自己的理解。
接口与持久层中java对象的持久化有关这个接口下的crud方法可以完成持久化。
SessionFactory
接口这个会话工厂接口需要完成的工作就是读入Hibernate配置文件里的Sessionfactory内容构架出sessionfactory并且要完成对Hibernate进行初始赋值的任务。
Configuration
接口Configuration这个接口主要在配置上有大用处当Hibernate框架开启的时候需要首先创建一个会话工厂对象这需要Hibernate框架需要调度Session接口和Sessionfactory接口完成对factory工厂类的构建然而这些都是需要configuration接口去完成一系列的操作的。
Transaction
接口这两个接口在Hibernate框架里扮演着和数据库打交道的角色和地位通过query或者criteria接口根据请求信息操纵数据库信息达到预料的目的同时他们也都对应着HQL和SQL的操作方式。
框架在开发中算是比较经典了特别是在结合了像MVC三层架构这样的观念思想后就更为大家所接受。
Struts框架的简单原理就是这样的Struts预先就定义好了Controller也就是用于控制的控制器。
首先就是去配置文件里面读取相关的配置信息要求值得注意的是该文件的名称可以struts-config.xml也可以用其他的形式命名。
当用户的请求进入系统之后首先对用户所要提交的数据进行打包经过模型层和视图层的流转和相关处理进入数据库。
值得一提的是各个层次之间相互分开都有各自的功能在理解层次上更清晰。
Struts
表现的Struts框架的各个组成部分具有相应的功能特点和各自的联系情况。
站在视图的视野上也就是前台页面呈现的观点上JSP页面的形成得益于这个Struts
结构的tagLib等库的运用进来例如说Taglib标签库可以快速简单的调用标签然后去形成页面。
在理解中到的Struts框架语法里Controller层站在控制的角度上就是对的是业务逻辑的实现进行管制最主要也就是Action组件的控制由于Action组件是系统的逻辑业务的最终完成层和承担者例如ActionForword就定义了业务逻辑根据不同的需求进行流转。
Struts框架的使用很广在大型前端应用程序的应用更为经典例如说web系统下面简单的说明下web应用程序的启动就要去Struts的配置文件里读取配置信息之后会把创建配置对象存放配置信息的内容而后加载和构建ActionServlet对象等配置对象执行如下流程步骤
①首先判断ActionServlet是否存在。
当不存在的时候返回的信息就应该为无效的这时候就有必要执行第二步。
②当判断出ActionServlet不存在时就需要把客户提交的表单数据保存在另外一个对象里所以需要需要创建ActionFom对象。
④验证成功的表现当执行完ActionForm.validate()方法后得到的结论有两种状况一种情况是返回空NULL另一种情况是不包括ActionMessage的ActionErrors
⑤ActionServlet把请求信息转发给相应的Action层那么Action层的具体实例对象就可以调用exexcute()方法假定action的对象载体没有构建就需要立马构建一个。
Action对象载体带有的方法调度完成后就会得出一个成果那么ActionServlet就会把这个结果转发给相应的JSP页面。
。
它的组成部分有Java代码html的语法规则Jsp标签。
JSP的大致变化是这样的首先通过表单来获取用户数据并提交给系统系统再把结果返回通过JSP组件动态的创建页面显示。
JSP页面的执行过程如图
客户端登录上浏览器上访问特定的网址由资源的路径信息的请求发出服务器接收请求并解析路径信息找到被请求的资源。
找到资源后就开始加载JSP或和html页面文件。
JSP文件在JSP组件的处理下被以Servlet代码保存。
产生的servlet代码就可以进行编写译为Class代码文件。
Class文件就是一被服务器的组件所识别然后执行。
系统执行的结果会在被浏览器所展示。
系统的技术架构:Struts2.0Spring4.0Hibernate3.0
本章对完成论文的理论基础及需要的关键技术进行了论述系统决定使用的是的B/S
SSH等框架和JSP前端技术。
最后说明了完成该系统的软硬件要求。
首先CRM客户关系管理系统的技术核心是SSH框架的使用和典型三层架构的层次模型的开发思想。
简单的说说三层的明确职能和任务表现层与客户打交道中间层springHibernate框架的配合使用负责数据访问和接收表现层的功能请求最主要的技术就是能够将应用程序的java类与数据库的表结构对应设计的ORM映射能力。
数据层就是实体对象的构建设计是最基础的层次。
然后数据的流向是从web层service服务层action动作层dao数据访问层db数据库再把结果逐级往上提交。
采用流行的SSH框架提高了开发效率增加了系统的内聚性降低了耦合性方便以后程序的扩张。
对于销售型的中小企业来说以有限的资源和较少的成本去吸引和留住更多的客户。
CRM
是解决这一问题的有效手段但不同于大型企业中小企业没有足够的时间和资金来构建功能完善、成熟高效的
系统来说本系统是一个功能精简的、具有实验性质的以满足企业日常客户关系管理的基础业务为目标的小型
系统按照软件工程的开发思想开发的周期包括需求分析数据库分析设计功能模块的实现测试和系统部署系统维护开发周期可以以月计算人力成本、硬件成本和开发成本等费用总计成本可以以万计算。
无论是时间成本还是投入资金对企业都没有造成巨大的负担。
与此相反当系统成功部署运行后不管是对公司企业还是对客户来说工作的时间和速度都相应的在改变提高了服务的质量意味着企业的效益在增加。
综上所述设计和实现CRM客户关系管理系统在经济上是完全可以接受的。
就企业而言很大程度上企业员工未使用过客户关系管理系统但得益于企业近些年的信息化建设几乎所有员工都能够运用办公自动化系统进行日常工作这使得员工快速掌握客户关系管理系统的操作成为可能。
此外依照客户关系管理系统的体系构造和业务性能制定一份功能完善而且易于理解的“帮助文档”是极其必要的它有利于用户快速掌握系统的使用同时在界面实现阶段开发人员应在业务功能的操作界面上设置相应的操作提示便于用户理解系统功能使得用户能够准确地运用系统开展工作。
下图是客户关系管理系统的三个功能区可分为客户管理产品管理系统管理等模块。
上述的用例图是对CRM系统的总体功能需求进行描述而这些实例中又包括其他的子用例。
正确登录的系统的用户能够对客户信息作出增加删除更新查询。
功能需求如下图
客户信息的增加能够录入客户可以指个人也可是集团客户这里指的是集团客户的信息例如公司名字地区等信息。
客户信息的删除。
客户信息的更新修改。
客户信息的查询可以根据公司的名字所属省份等信息查询再数据库中保存的信息并显示出来。
正确登录的系统的用户能够对产品信息作出增加删除更新查询。
功能需求如下图
产品信息的增加能够录入产品名称规格价格等产品信息。
产品信息的删除。
产品信息的更新修改。
产品信息的查询可以根据产品名字产品列表等信息查询再数据库中保存的信息并显示出来。
系统管理功能需求主要是对角色和权限进行管理。
不同的角色拥有不同的权限。
功能需求如下图
角色的新增通过新建角色并对角色进行描述完成对角色的创建。
修改权限对已有角色的权限进行变更。
下图为系统登录的流程图用户输入账号密码验证码等登录信息系统验证通过就可以登录成功进来系统的主界面进行各种操作。
验证错误是就需要重新输入登录信息。
下表为登录用例表。
安全性就是系统在使用的时候可以对数量巨大的数据批改调用时保证数据不发生错误。
本章介绍了客户关系管理系统需求分析阶段的工作主要包括对系统的可行性、功能需求及用例的具体分析等内容。
数据库的存在意义就是存储数据根据需求分析就是客户信息和产品信息最明显的表现形式就是表结构的存在。
然而设计数据库的初衷就是为应用程序提u供后台支持把代码和系统能分离出来良好的数据库设计有很多可以降低数据之间的冗余性,提高数据库的可维护性同时也能提高系统运行时的速度和系统的稳定性,实现数据之间的共享。
可是根据系统的功能需求设计数据库并不是那么简单需要反复的分析功能需求逐步的研究和推敲出最为合理的数据库表把表和表之间的潜在的关系通过E-R图表现出来。
下图就是数据库表的设计的E-R图就是实体-联系图通过E-R图可以清楚的了解系统的表与表之间的结构关系从概念上反应数据库信息组成情况。
业务实体在应用程序是实体对象的表现形式存在在后台数据库中存在的形式就是表和表之间的关系。
那么业务实体的实现有下面的三个步骤
设计域模型创建域模型实体对象设计关系型数据模型创建对象、关系映射文件
生成一张客户关系记录需要上述的这些表。
下面是详细的定义出这些数据库表字段的代表的意思
部门表hr_department部门信息的记载。
主要的属性有部门主键id部门名称d_name上级分类IDparentid负责人d_employee电话d_telephone地址d_address邮箱d_email描述d_description。
职务表hr_postion对职务信息的记载。
属性有职务ID(ID)职务名称postion_name职务次序postion_order。
岗位表hr_post岗位信息的描述。
属性有岗位IDID岗位名称post_name岗位描述hr_descript。
系统角色表sys_role记录的是角色的枚举值。
属性有角色IDID角色名称rolename权限说明rolescript当前权限可以操作childmenus权限排序rolesort。
员工表hr_employee员工信息的记录。
属性有员工IDID用户名uid密码pwd姓名name身份证idcard生日birthday邮箱email性别sex电话telephone地址address备注remarks。
省市表param_city作为省市参数的枚举表。
属性有省市IDID上级IDparentID城市名称city。
客户表crm_customer客户信息主要是集团客户的记录。
主要的属性有客户表主键ID客户序列号serialnumber公司名称customer公司地址address公司电话tel公司网址site公司描述descript备注remarks。
产品类别表crm_product_category记录产品的分类属性有客户类型主键ID父类型idparentId。
产品信息表crm_product记录的是产品信息。
属性有产品idproduct_id
,产品名称product_name产品规格specifications状态status单位unit备注remarks价格price。
部门类职务类客户类等这些对象都需要持久化这些类在数据库上都有对应的表结构产生意义对应的是部门表职务表客户表等设计出的数据库包含这些表。
如下为各个表的建表语句以及表结构。
这一章介绍了根据业务需求设计数据库的相关表和表与表之间的关系以及给出了建表语句。
根据上文的功能分析和数据库的分析在系统的实现阶段上采用当今开源的SSHStrutsHibernateSpring整合框架实现。
其目的是降低个模块间的耦合度使各个模块之间的功能相互独立、模块内部结构清晰。
系统架构如图所示。
整个系统是有多个层次的数据流动的顺序是从浏览器到数据库再从数据库到浏览器中间经过service层action层和dao层。
如图展示的是层次之间的走向是自左到右每一个层次都是相互依赖的关系。
用户登录这个客户关系管理系统需要在自己的浏览器上访问特定的网址然后点击某些功能键后系统在段时间内回复用户访问请求调用逻辑业务层代码接收请求和妆发请求在执行访问数据库底层代码请求经过dao层查询数据库并取出数据一步一步返回给上一层最终把结论呈现在原来的jsp网页给使用者看。
持久层的功能就是接收其他层的请求并且响应其他层次的功能对数据库的进行访问得到数据持久层的设计就需要设定应用程序和数据库交流的实体类和进行交流的方法。
那么这一层就大致有实体对象的持久化类以及数据访问层接口的实现类等结构。
特别说明持久层使用了开发程序经常使用的Hibernate框架框架的使用能大大的减小关系型数据库与对象应用程序之间的不能一一对应的缺点可以把需要处理的数据封装成对象。
并且设计的实体类持久化类他的结构大概是对象的属性构造方法有参和无参还有自动生成了get()和set()函数。
如图为各个功能的类图。
在web-inf下的application-contex。
Xml配置文件里定义了连接数据库的数据源通过数据源可以将类和数据库中的表进行关联。
classorg.apache.commons.dbcp.BasicDataSource
valuejdbc:mysql://127.0.0.1:3306/mycrmdb
在定义过程中数据库的url为jdbc:mysql://127.0.0.1:3306/mycrmdb用户名为root数据库密码是123456驱动类为com.mysql.jdbc.driver。
数据库表的存在和应用程序的java对象之间的一一对应采用的是Hibernate框架所拥有的关系对应ORM功能java持久层组成的结构具有两个部分Java实体类、数据库的表与实体类对象一一对照的关系映射Hibernate文件。
这些事实体能够持久化的基础。
在MyCrm项目下的com.crm.info包下存放着该项目的所有持久层对象文件。
其中客户信息的实体对象持久类CrmCustomer.java的代码如下
paramSysparamByCustomerlevelId,
paramSysparamByCustomersourceId,
paramSysparamByCustomerindustryId,
this.paramSysparamByCustomertypeId
this.paramSysparamByCustomerlevelId
paramSysparamByCustomerlevelId;
this.paramSysparamByCustomersourceId
paramSysparamByCustomersourceId;
this.paramSysparamByCustomerindustryId
paramSysparamByCustomerindustryId;
从代码可看出持久层不包括任何的业务逻辑代码只包含有变量定义和变量所拥有的get()、set()函数是一个单纯的Java对象目的是有很高的可移植性提供代码的可重用性。
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
catalogmycrmdb//mycrmdb数据库下表crm_customer和CrmCustomer对象对应
class标签中name属性表示的是持久层类的java全限定名table属性代表的意思是所使用的数据库表名。
Catalog属性表现为使用的数据库的名字。
id标签中name为实体类属性的名称type是属性的类型column的name定义该实体类对应数据库表的字段名字。
generator的class属性表示数据库表之间的关联生产对策。
由此可见实体类和数据库中的表名在配置文件中都有明确的逐个对应Hibernate会根据映射文件将实体类转化为数据库表或者将数据库字段转换为实体类。
classorg.springframework.orm.hibernate3.LocalSessionFactoryBean
org.hibernate.dialect.MySQLDialect
valuecom/crm/info/ParamSysparamType.hbm.xml/value
valuecom/crm/info/SysMenu.hbm.xml/value
valuecom/crm/info/ParamCity.hbm.xml/value
valuecom/crm/info/PersonalEvent.hbm.xml/value
valuecom/crm/info/MailAttachment.hbm.xml/value
valuecom/crm/info/CrmProductCategory.hbm.xml/value
valuecom/crm/info/HrPost.hbm.xml/value
valuecom/crm/info/HrDepartment.hbm.xml/value
valuecom/crm/info/HrPosition.hbm.xml/value
valuecom/crm/info/PersonalNotes.hbm.xml/value
valuecom/crm/info/CrmProduct.hbm.xml/value
valuecom/crm/info/CrmCustomer.hbm.xml/value
valuecom/crm/info/PersonalChat.hbm.xml/value
valuecom/crm/info/CrmContact.hbm.xml/value
valuecom/crm/info/ParamSysparam.hbm.xml/value
valuecom/crm/info/PersonalCalendar.hbm.xml/value
valuecom/crm/info/SysLogin.hbm.xml/value
valuecom/crm/info/CrmOrder.hbm.xml/value
valuecom/crm/info/CrmFollow.hbm.xml/value
valuecom/crm/info/CrmContract.hbm.xml/value
valuecom/crm/info/PublicNotice.hbm.xml/value
valuecom/crm/info/MailFlow.hbm.xml/value
valuecom/crm/info/PublicNews.hbm.xml/value
valuecom/crm/info/HrEmployee.hbm.xml/value
valuecom/crm/info/CrmOrderDetails.hbm.xml/value
valuecom/crm/info/CrmInvoice.hbm.xml/value
valuecom/crm/info/CrmReceive.hbm.xml/value
valuecom/crm/info/SysRole.hbm.xml/value
valuecom/crm/info/PublicChatRoom.hbm.xml/value
valuecom/crm/info/SysApp.hbm.xml/value/list
Struts.xml文件的作用主要是对到来自JSP的请求的接收和跳转分配的作用该struts的核心配置文件如下
filecom/crm/struts/crm-struts.xml/include
filecom/crm/struts/hr-struts.xml/include
filecom/crm/struts/mail-struts.xml/include
filecom/crm/struts/param-struts.xml/include
filecom/crm/struts/personal-struts.xml/include
filecom/crm/struts/public-struts.xml/include
filecom/crm/struts/sys-struts.xml/include
Spring框架的中心配置文件就是Web.xml文件里根据自己的需要填写了一些注解文件。
利用spring的注解方式进行实例化action和dao层。
filter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class
filter-classorg.springframework.orm.hibernate3.support.OpenSessionInViewFilter/filter-class
listener-classorg.springframework.web.context.ContextLoaderListener/listener-class
welcome-filelogin.jsp/welcome-file
Object从字面上理解的意思是数据访问对象层次dao的使用目的就是定义出与数据操作方法有关的逻辑代码例如增删改查这样的操作。
按照DAO的设计规则DAO层里面必须要有操作数据的方法在com.crm.dao包下存放所有的dao层对象。
首要的是通过继承Hibernate框架下的HibernateDaoSupport这个支持类的setSessionFactory()方法并通过Spring的注解进行依赖注入然后执行getHibernateTemolate()方法得到Hibernate框架的模板类数据使得执行的速度加快了方便了开发者。
createCriter(this.getSession(),
c.add(Restrictions.eq(isdelete,
逻辑业务层是应用程序的业务中心所在接收从表现层传来的数据经过逻辑业务层的处理由持久层存储下来。
业务逻辑类的实现是业务逻辑层向上层提供服务的业务实现。
只专注于具体的业务逻辑满足客户多样化的需求。
同时业务逻辑层需要持久层的实例来调用持久层的服务而持久层的实例可以通过Spring容器的动态注入完成。
setCrmCustomerDao(CrmCustomerDao
表现层是面对面和用户交互的最外表的一层接受用户数据提交给模型进行处理然后模型把结果回馈给用户。
贯穿这个层次的是Struts
模型层是用来处理数据。
在模型层里面没有对数据进行业务规格要求上的处理只是控制流程和业务数据的检查模型层的支撑代码就是使用业务逻辑层的各个实现类来规则数据。
setCrmCustomerBiz(CrmCustomerBiz
Scopes.getRequestMap().put(bywhere,
crmCustomerBiz.findAllByWhere(bwvobj));
crmCustomerBiz.addCustomer(customer);
contact.setCrmCustomer(newcust);
这个类是处理客户信息的增加的时候的情况。
承袭了Struts框架里的ActionSupport这个类而且依照java的要求重写了execute()函数该方法就是处理业务流程。
在系统实现过程中还需要spring框架的注解信息可以applicationContext.xml文件里面进行写入。
通过Struts的标签和jsp等进行实现的。
这个界面直接面对用户更直接影响用户对该系统的第一感觉所以说这一层设计和重要。
如模型层的代码如果客户信息添加成功了就会回crm_cus_list.jsp上。
控制层是是连接视图和模型的关键两个分离的模块因为控制层而整合在一起使代码更容易维护。
用户请求经过控制层的处理然后把请求提交给对应的模型层处理。
classcom.crm.action.CrmCustomerAction
nametoupdatecrm_cus_update.jsp/result
typeredirectActioncrm_cust/result
typeredirectActioncrm_cust/result
typeredirectActioncrm_cust/result
nametrash/pages_sys/trash_cus_list.jsp/result
src%basePath%hr_emp!ajaxValidateCode
用户输入的账号密码验证码通过文本框的post方式提交给hr_strutshr_rmp!login下action类。
classcom.crm.action.HrEmployeeAction
Hr_emp对应的action实现类为HrEmployAction。
(inpcode.equalsIgnoreCase(ValidateCode.code))
Scopes.getSessionMap().put(emp,
sysMenuBiz.findShowMenusByRole(employee.getSysRole());
Scopes.getSessionMap().put(menus,
Scopes.getRequestMap().put(err,
Scopes.getRequestMap().put(err,
Scopes.getRequestMap().put(err,
在Action中调用了业务逻辑层的biz类进行实例化在HrEmployeeBiz中有
调用了dao层的HrEmployeeDao类中的login方法进行取数据库中的数据
this.getSession().createCriteria(HrEmployee.class).add(Restrictions.eq(uid,
从数据库里取出的数据和Jsp传过来的数据进行比较再把结果返回给action层最后返回到JSP上显示。
需要的效果图如下图所示
用户经过填入相关的客户信息通过post方法把表单提交到crm_cust上
classcom.crm.action.CrmCustomerAction
typeredirectActioncrm_cust/result
crmCustomerBiz.addCustomer(customer);
contact.setCrmCustomer(newcust);
调用crmcustomerBiz类和crmcustomerDao的add方法
//customer.setHrEmployeeByCreateId((HrEmployee)
Scopes.getSessionMap().get(emp));
contact.setHrEmployee((HrEmployee)Scopes.getSessionMap().get(emp));
直接调用crmcustomerDao的save方法这个方法在hibernate里定义这样客户的数据就保持好了删除更新查询的流程都是这样的就不一一的列举了。
效果图如下
这一章对系统的详细设计做了一个介绍结合代码和ssh进行整合对登录和客户信息添加模块模块做了详细的介绍。
这一章通过对CRM客户关系管理系统的两个小功能进行的测试通过测试用例成功的将所需要的功能目的展现出来。
CRM系统是一个具有新思维的管理机制,通过CRM软件希望能够改变企业和客户之间的传统联系达到有效的管理和利用企业的客户资源的目标提高企
业对客户的服务水平促进市场竞争力的形成为公司和企业带来财富和效益CRM客户关系管理系统的研究具备重要的理论目的和实践性。
本课题研究的是是基于java这门语言通过SSH框架结合使用实现的CRM企业客户关系管理系统。
主要学到知识有:
对Struts、Spring、Hibernate三个framework有了初步的使用了解。
特别是整合三优秀框架进行开发。
熟悉三层架构有利于系统的维护。
能有效的利用测试原理对系统功能进行测试。
对jsp有一定的理解。
在整个系统中运用到UML统一建模语言对系统的功能模型、对象模型进行设计并根据系统的需求设计系统功能。
在思考如何写入CRM系统代码时需要严谨的逻辑思维严格的要求这篇论文在
框架实现系统的开发。
这种开发模式能快速的建立数据库与应用程序之间的联系同时提高数据的安全性与系统的二次开发性、可重用性等性能。
在系统的实现阶段中应用了组件很大程度的加强代码的使用效率提高了开发效率减少了维护工作。
对需求的分析不够。
Dao层Action层没有采用接口可能会导致耦合性能不够好。
我的期望就是对Struts理解加深对它的标签库进行使用在jsp实现view中只是用到了基础的页面请求和转发的方法。
这需要长时间去积累。
还有就是逐步去完善这个系统。
陈广宇.管理信息系统[M]北京清华大学出版社2010:95-100
崔群法王咏梅李有军。
ECLIPSE从入门到精通[M]。
北京电子工业出版社。
2008.
李兰友,基于Struts框架的档案管理系统应用研究[J],计算机工程与设
萨师煊王珊.数据库系统概论[M].北京高等教育出版社2005.
李建刚秦兴桥郑雨贝。
JSP网络编程技术与实践[M]。
北京清华大学出版社。
2008.
肖丹.知识型档案管理系统建设及其关键技术研究[D],中山大学硕士学位论文,2010.
张蕾.基于.NET的档案管理系统的开发与研究[D],天津大学硕士学位论文,2007.
杨路明,杨竹青,曹丽娟.客户关系管理与企业获取客户的方法.商业研究,2006,
徐友明.如何从客户关系管理入手提升企业核心竞争力.经济论坛,2005,
段俊勇.基于三层C/S结构的ERP系统的研制:[硕士学位论文].山东青岛:青岛科技大
孙卫琴.精通Hibernate:Java对象持久化技术详解.北京:电子工业出版社
孟劼.精通Spring-Java轻量级架构开发实践.北京:人民邮电出版社,2007
张桂元.Eclipse开发入门与项目实践.北京:人民邮电出版社,2005
蔡高巍.JSF的研究及其应用.信息科技,2008,(3):23-24
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback