基于SSM框架的客户管理系统设计与实现

2017-09-05 13:34刘昊李民
软件导刊 2017年7期

刘昊+李民

摘 要:客户关系管理是企业为了优化长期价值和管理客户而选择的经营战略,而基于J2EE平台的CRM系统可以实现移动办公和分布式管理的需求。采用目前流行的SSM(Spring MVC、Spring和MyBatis)框架进行CRM系统开发,提高了系统开发效率及可用性,使数据库的访问更加灵活。

关键词:客户关系管理;CRM;J2EE;SSM

DOIDOI:10.11907/rjdk.171711

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2017)007-0087-03

0 引言

随着信息技术的迅猛发展和产业环境的不断变化,面对市场更为激烈的竞争,建立企业CRM系统无疑是一项重要的举措。CRM旨在改善客户对企业的满意度与忠诚度,它的实施要求以客户为中心来架构企业的业务流程,一方面通过提供周全的个性化服务来保持客户的忠诚度,同时有选择性地吸引更多新客户,另一方面通过对业务流程的全面管理降低企业成本。CRM系统作为信息化的企业级客户信息管理和决策平台,将企业的注意力集中在提高客户满意度和重塑企业营销能力上。

J2EE是Java2平台企业版(Java 2 Platform Enterprise Edition)的英文缩写,是由SUN公司开发的一套企业家应用规范,其核心是一组技术规范与指南,在系统架构上,J2EE采用分层设计模式,减轻客户端处理压力,使组件间的耦合度降低。J2EE应用大致包括如下几类组件:表现层组件、控制器层组件、业务逻辑层组件。系统采用SSM框架(Spring MVC、Spring和MyBatis),它相对于SSH(Struts2、Spring和Hibernate)框架更轻量级,系统设计更清晰,便于管理与维护,开发效率更高。SSM 框架是标准的MVC框架,将整个系统划分为表示层、控制层、服务层、数据库访问层4层,使用Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,MyBatis作为数据对象持久化引擎。

1 系统介绍

1.1 CRM体系

CRM的支柱功能主要是对销售实现、市场营销和客户服务与支持这3部分流程的信息化,这些是客户与企业联系的主要领域,这些联系可能发生在销售的不同时段,也可能发生在客户与企业更近的接触中。人们通常将CRM分为3种不同的类型:运营型(Opera-tional)CRM、分析型(Analytical)CRM和协作型(Collaborative)CRM。CRM 体系结构如图1所示。

1.2 系统功能

CRM系统的基本功能包括各模块的信息添加、修改、删除和查询等,包括客户、联系人、公司的信息添加、修改和删除功能;销售机会管理的信息添加、修改和删除功能;客户开发计划的添加、修改和删除功能以及开发状态查询;客户信息的添加、修改和刪除功能、交往记录、历史订单查询功能;客户服务管理的服务创建、分配、处理、反馈、归档功能;日程安排、城市区域信息管理和产品信息管理功能。

从功能角度对于客户关系管理系统作进一步细分,可分为营销管理、客户管理、服务管理、统计分析等模块,具体如下:①营销机会管理功能:可以通过“客户名称”、“概要”、“创建人”和分配状态(已分配,未分配)来查询数据,同时工具栏可以创建、修改、删除销售机会;②客户信息管理功能:可以通过 “客户编号”或“客户名称”查询数据,工具栏可以创建、修改、删除联系人管理、交往记录管理,实现历史订单查看功能、合同书的生成功能等;③客户服务管理功能:服务的创建和安排、分配;事件的处理、查询,服务的跟踪反馈和服务协议的生成;④统计分析功能:通过数据仓库对数据进行存储和管理,抽取相关数据进行数据挖掘和统计分析,生成统计报表;⑤基础数据管理:数据字典、客户信息以及产品信息和区域信息的维护;⑥系统管理:系统参数设置和密码的安全管理。

客户关系管理系统功能设计如图2所示。

2 系统设计

2.1 系统开发环境

操作系统:Windows 10;数据库服务器:MySQL 5.7;Web服务器:Tomcat 6.0.16;JDK版本:JDK 1.6.0;配置:CPU:主频1.0GHZ以上;内存:512MB以上;硬盘:40G以上。

2.2 相关技术

系统后端采用J2EE技术和SSM框架整合实现,使用RESTful和JSON的数据形式实现系统的前后端分离设计。前端采用Bootstrap前端框架和EasyUI框架实现用户界面和交互。其中SSM框架包括:

(1)Spring 框架。Spring作为一个开源框架,其为用户提供了IOC(控制反转)容器和AOP(面向切面编程)支持。在Spring中,各模块的依赖关系通过简单的IOC配置文件进行描述,使其更加清晰地把外部化信息集中起来。

(2)Spring MVC框架。Spring MVC是Spring为用户开发提供的主流框架。Spring MVC分离了视图、模型、控制器3种角色,将业务处理从界面交互中独立出来,封装到模型和控制器设计中去,使得它们之间互相解耦,可以独立扩展。

(3)MyBatis框架。MyBatis是优秀的数据持久层框架。MyBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO),MyBatis消除了近乎所有的JDBC代码和手工设置的参数及对结果集的封装检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects及普通的Java对象映射成数据库中的记录。

Spring整合Mybatis的配置文件部分代码如下:

<!-- 配置MyBatis的sqlSessionFactory -->

<!-- 自动扫描mappers.xml文件 -->

<!-- MyBatis配置文件 -->

整合SpringMVC和Spring。由上述可知,SpringMVC框架是Spring基于MVC设计模型的实现,因此单独配置一个SpringMVC配置文件,其主要完成自动扫描控制器、视图模式、注解的启动等功能配置,然后在web.xml文件中配置整合即可。SpringMVC的配置文件部分代码如下:

<!-- 使用注解的包,包括子集 -->

<!-- 视图解析器 -->

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

2.3 类设计

根据系统需求分析和总体架构设计,系统分为表现层、控制层、服务层和数据库访问层。系统主要类如图3所示。

2.4 数据库设计

根据需求分析,CRM系统主要有客户、订单、联系人、销售机会、开发机会等实体类;系统涉及的主要表有用户信息表、产品表、客户表、销售机会表、客户开发表、客户服务表等。其中,CRM系统的EER图如图4所示。

3 系统实现

在CRM系统结构图中,网站后台管理总共有6种功能,其中营销管理、客户管理、服务管理、统计分析的主要功能是实现数据库的增删改查,因为CRM系统管理都是以客户管理为基础的,下文主要讲述客户管理查询功能的实现。

(1)数据持久层。MyBatis框架首先创建SqlSessionFactory实例,其作用相当于一个数据库连接池,然后SqlSessionFactory通过配置的XML文件来获取一个SqlSession。执行SQL 语句所必须的方法,都包含在SqlSession中,所以通过SqlSession 完成对数据库的操作,用完之后需要释放数据库连接。

(2)业务逻辑层。数据访问采用DAO(数据访问对象)模式,DAO为面向对象的数据库接口,当需要和数据源交互时,便可使用DAO接口。它的使用可以减少业务逻辑组件和数据库访问逻辑的耦合度,能够更加专注于编写数据访问代码。定义接口类之后在MyBatis的Mapper配置文件中添加配置即可。

(3)控制层。在查询客户信息时,通过Form表单来临时存储客户表中每个字段的信息,因此需要一个表单实体类Customer作为可重用组件(JavaBean),里面每个字段都定义了Getter( )和Setter( )方法,便可直接在Controller的參数列表中直接写这个Javabean对象,Spring会自动进行封装。

已经在web.xml的文件中配置了请求地址,DispatcherServlet作为MVC框架的调度枢纽,根据请求地址DispatcherServlet会在Controller类中的方法上分派请求。通过@Controller注解来注册所写的Controller类,@RequestMapping来注册请求的路径,经过上述处理实现了控制层的功能。

(4)表现层。表现层视图的呈现,通过调用DispatcherServlet可以将网页上数据访问请求转发到注册过的Controller类中的doDispatch方法上,实现系统页面之间的跳转。由于在SpringMVC的配置文件中已经配置好了视图解析器,采用了jsp、jstl、el进行展示,效果及渲染方面则采用EasyUI框架同时使用Ajax异步刷新技术,并结合Javascript技术实现页面动态丰富的效果。

4 SSM框架开发CRM系统的优势

J2EE在企业开发中占有绝对优势,很多CRM开发商都将它作为CRM的开发平台。SSM框架有良好的可维护性和复用性,已成为B/S应用的主要选择。目前,大多主流应用都采用了SSM框架,为搭建优秀的应用分层及可扩展性和可维护性好的CRM系统提供了基础。具体如下:①典型的三层架构体现MVC(模型Model、视图View和控制器Controller)思想,可以让开发人员减轻对技术规范复杂性的处理,便于对设计的变更作出迅速反应,降低开发时间成本,提高开发效率,并且随着技术的更迭和客户需求的改变,系统有时需要重构,而SSM架构使重构成功率有更大提升;②系统设计清晰和易维护,MyBatis通过数据方法层将数据访问逻辑和业务逻辑之间分离,把SQL语句写在映射文件中,使系统设计更清晰,便于管理与维护,同时在高并发的系统开发中,MyBatis的控制能力强,调优成本低;③优秀的解耦性,由于软件产品需求的不固定性,随着开发过程的深入,客户对系统功能的需求会不断明晰,对软件需求也相应发生变化,使企业开发者在开发新的代码时投入更多的财力物力。SSM三层构架,致力于让系统的应用组件以松耦合的方式组织在一起,使应用组件之间的耦合在接口层次,而不是代码层次。

5 结语

一个优秀的CRM系统,是以提升客户满意度和客户忠诚度为目标发展的,并同时实现企业利润最大化。本文在对系统展开充分需求分析和系统设计的基础上,综合运用SSM、Ajax和数据库等相关技术,编程实现CRM系统的各项功能,满足了企业CRM需求。

参考文献:

[1]丁秋林,力士奇.客户关系管理[M].北京:清华大学出版社,2002.

[2]李刚.轻量级JavaEE 企业应用实战[M].第4版.北京:电子工业出版社,2015.

[3]李洋. SSM框架在Web应用开发中的设计与实现[J].计算机技术与发展,2016(12):190-194.

[4]田同生.客户关系管理的中国之路[M].北京:机械工业出版社,2001.

[5]高晓翯.以客户为核心的CRM系统的研究与设计[D].天津:天津大学,2007.

[6]顾桂芳,李文元.数据挖掘在移动通信业客户关系管理中的应用研究[J].科技管理研究,2007(2):28-29

[7]李苏琴.九江学院在线考试系统的设计与实现[D].成都:电子科技大学,2012.

[8]顾美芳.数据挖掘技术在零售业客户关系分析中的应用研究[D].苏州:苏州大学,2006.

[9]马志祥.基于J2EE的海量数据虚拟存储管理平台的设计与实现[D].成都:电子科技大学,2013.