随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使用人们的生活与工作方式发生了很大的改观。本课题研究的客户信息管理系统,主要功能模块包括统计图,系统用户(管理员,系统用户),模块管理(客户信息,访问记录,合作记录,客户类型,公告信息)等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用SpringBoot框架进行系统的开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、意义,为研究工作的合理性打下了基础。针对客户信息管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现系统各大模块。
关键词:客户信息管理系统;Java语言;SpringBoot框架;mysql
ABSTRACT
With the development of computer technology, especially the development of computer network and database technology, people's lifestyles and work methods have undergone significant changes. The customer information management system studied in this project has main functional modules including statistical charts, system users (administrators, system users), module management (customer information, access records, cooperation records, customer types, announcement information), etc. It adopts an object-oriented development model for software development and hardware installation, which can effectively meet practical usage needs and improve the corresponding software installation and program coding work, Adopting MySQL as the main storage unit for backend data and using the SpringBoot framework for system development, all functions of this system have been achieved. This report first analyzes the background and significance of the research, laying the foundation for the rationality of the research work. Analyze the various requirements and technical issues of the customer information management system, prove the necessity and technical feasibility of the system, and then provide a basic introduction to the technical software and design ideas required for designing the system. Finally, implement the major modules of the system.
Key words: customer information management system; Java language; SpringBoot framework; mysql
目 录
第1章 绪论
1.1研究背景
在这个信息化高速发展的时代,现代企业需要适应更加激烈的市场竞争,而客户是企业生存的基础。一切企业行为都是围绕着客户开展,因此如何有效的管理客户,如何针对不同的客户制定不同的销售策略,如何提高客户的销售订单数量,更好地管理客户订单进度,避免客户流失等这些都是近年来无数企业一直在探索研究的问题。建立客户信息管理系统,可以为大客户提供个性化及优质的售前、售中和售后服务,使企业客户的满意度提高;同时公司实施大客户信息管理系统可整合自身拥有的客户资源体系、优化市场价值链条,从而增强企业的核心竞争力。因此对企业的客户信息管理提出了更高的要求。本系统的设计和实现对提高重点客户的服务质量、服务水平以及客户满意度发挥了重大作用,对于同类系统的设计和开发也具有一定的借鉴作用。
1.2 开发现状
国外对于客户信息管理系统的研究开始较早,且分布在各行各业。在西方,31%的企业已经处于客户信息管理系统的计划或者实施阶段,更有70%的企业对于客户信息管理系统有了比较具体、系统的认识。12%的企业已经正式导入使用客户信息管理系统了。
目前,我国对于客户信息管理系统的实际操作和技术水平,对于该系统的研究尚处于初级阶段,整个市场环境还未健全。但随着时代的发展,互联网技术的不断深入,更多的中小企业对于客户价值的愈发重视,国内的客户信息管理系统也开始有了雏形,通过对于国外文献的翻译和学习可以发现,尽管对比发达国家,尚存在一定差距,分布领域未有那么广泛,但也实现了长足的进步与发展。目前的主要市场集中在经济较发达的城市,使用这类系统的企业以电信、银行、金融居多。随着国内经济的不断发展,需求不断扩大,中小企业也相继开始引入客户信息管理系统。因此,设计开发一个客户信息管理系统无论在需求、还是实现的难易度来看都是势在必行得。
1.3 研究的内容
本选题则旨在通过标签分类管理等方式,实现首页,统计图,系统用户(管理员,系统用户),模块管理(客户信息,访问记录,合作记录,客户类型,公告信息)等的功能需求。
第2章 相关技术
2.1开发技术
本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分:采用SpringBoot作为开发框架,同时集成MyBatis、Redis等相关技术。
2.2 Java简介
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,Java servlet API,JSP(Java server pages),和XML技术。Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,开发者只需要知道一些概念就能够编写出一些应用程序。Java程序相对较小,其代码能够在小机器上运行。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。
Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。
2.3 MVVM模式
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
2.4 B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。
2.5 MySQL数据库
Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。
Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。
2.6 SpringBoot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
第3章 系统分析
3.1 需求分析
客户信息管理系统主要是借助信息管理系统,实现客户信息,访问记录,合作记录等的系统管理。更好存储所有数据信息及快速方便的检索功能。对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以客户信息管理系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。
3.2 系统可行性分析
3.2.1技术可行性
该系统在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用JavaScript框架Vue.js,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
客户信息管理系统及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障系统的安全及数据信息的及时备份。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
3.2.2经济可行性
在客户信息管理系统开发之前所做的市场调研及相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于客户信息管理系统的开发在经济上是完全可行的,没有任何费用支出的。
3.2.3操作可行性
可操作性主要是对客户信息管理系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、系统用户两种用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.3 项目设计目标与原则
1、关于客户信息管理系统的基本要求
(1)功能要求:首页,统计图,系统用户(管理员,系统用户),模块管理(客户信息,访问记录,合作记录,客户类型,公告信息)等功能模块。
(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。
(3)安全与保密要求:用户都必须通过身份验证才能进入系统,并且用户的权限也需要根据用户的类型进行限定。
(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。
2、开发目标
客户信息管理系统的主要开发目标如下:
(1)实现管理系统信息关系的系统化、规范化和自动化;
(2)减少维护人员的工作量以及实现用户对信息的控制和管理。
(3)方便查询信息及管理信息等;
(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;
(5)考虑到用户多样性特点,要求界面简单,操作简便。
3、设计原则
本系统采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
客户信息管理系统的设计与实现的设计思想如下:
- 操作简单方便、系统界面安全良、简单明了的页面布局、方便查询相关信息。
2、即时可见:对客户信息管理系统信息的处理将可以实时查询到,从而实现“即时发布、即时见效”的系统功能。
3、功能的完善性:首页,统计图,系统用户(管理员,系统用户),模块管理(客户信息,访问记录,合作记录,客户类型,公告信息)等模块的修改维护操作。
3.4系统流程分析
3.4.1操作流程
![](https://i-blog.csdnimg.cn/blog_migrate/e8ec0a8835d324d17db7e9ebb3c17323.png)
图3-1登录流程图
3.4.2添加信息流程
添加信息流程图,如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/e65169d30e3a30586628a4dbc8a5d313.png)
图3-2添加信息流程图
3.4.3删除信息流程
删除信息流程图,如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/b5e120bc84994e015325e89c18f3648d.png)
图3-3删除信息流程图
第4章 系统设计
4.1 系统体系结构
本系统选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:
![](https://i-blog.csdnimg.cn/blog_migrate/1cfaa96f53c2fc098bf5d7b93dfd13b4.png)
图4-1 系统工作原理图
4.2系统结构设计
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。
本系统结构图如图4-2所示。
![](https://i-blog.csdnimg.cn/blog_migrate/8a79d80b40dcadac854f32324bae9f04.png)
图4-2 系统功能结构图
4.3开发流程设计
系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。
客户信息管理系统的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图4-4所示。
![](https://i-blog.csdnimg.cn/blog_migrate/d30d92bce897ac76c192b8ceae06c0f0.png)
图4-4开发系统流程图
4.4 数据库设计原则
学习编程,我们都知道数据库设计是基于需要设计的系统功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在程序中时,就没有必要为程序页面添加数据,从而提高系统的效率。数据库存储了很多信息,可以说是信息管理系统的核心和基础,数据库还提供了添加、删除、修改和检查,使系统能够快速找到自己想要的信息,而不是在程序代码中找到。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。
通过客户信息管理系统的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:
用户信息属性图如图4-5所示。
![](https://i-blog.csdnimg.cn/blog_migrate/75722e2011f04405a848bb67c85c38e0.png)
图4-5 用户信息实体属性图
系统的E-R图如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/d00e454618af3b266e60964bc2aa3fff.png)
图4-6系统E-R图
4.5 数据表
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。
表access_records (访问记录)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
access_records_id |
int |
10 |
0 |
N |
Y |
访问记录ID |
|
2 |
management_number |
varchar |
64 |
0 |
Y |
N |
管理编号 |
|
3 |
customer_type |
varchar |
64 |
0 |
Y |
N |
客户类型 |
|
4 |
customer_name |
varchar |
64 |
0 |
Y |
N |
客户名称 |
|
5 |
customer_phone |
varchar |
16 |
0 |
Y |
N |
客户手机 |
|
6 |
customer_email |
varchar |
125 |
0 |
Y |
N |
客户邮箱 |
|
7 |
customer_address |
varchar |
64 |
0 |
Y |
N |
客户地址 |
|
8 |
system_user |
int |
10 |
0 |
Y |
N |
0 |
系统用户 |
9 |
accessing_attachments |
varchar |
255 |
0 |
Y |
N |