劉昊+李民
摘 要:客戶關系管理是企業為了優化長期價值和管理客戶而選擇的經營戰略,而基于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.