基于SSM框架的客户经理信息管理系统开发与设计

news2024/9/24 7:25:17

基于SSM框架的客户经理信息管理系统开发与设计

嗨,我是射手座的程序媛,期待和大家更多的交流与学习,欢迎添加3512724768。

1.软件开发流程

软件的开发流程包括:问题的定义及规划、需求分析、软件设计、程序编码、软件测试五个阶段。

(1)问题的定义及规划:主要确定客户经理管理信息系统的开发目标及其可行性;
(2)需求分析:在确定开发可行性的情况下,对客户经理管理信息系统需要实现的各个功能进行详细需求分析;
(3)软件设计:对整个客户经理管理信息系统进行概要设计和详细设计以及功能逻辑设计,如系统框架设计、数据库设计、具体的属性设计等;
(4)程序编码:此阶段是将系统设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范,以保证程序的可读性、易维护性,提高程序的运行效率;
(5)软件测试:在客户经理管理信息系统设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。

2.项目整体功能概要

整个项目具体实现了系统用户管理和学习园地管理模块的全部功能以及客户经理信息管理模块的部分功能。
系统用户管理模块,系统采用登录名和密码登录系统,登录系统时进行用户名和密码的验证。进入系统后点击用户管理模块,可实现系统用户信息的查看、添加、修改、启用禁用等功能。
学习园地管理模块,实现用户对学习资料信息的查看以及附件材料的上传和下载。
客户经理信息管理模块,包括客户经理信息综合维护和客户经理辅助信息维护。客户经理信息维护实现客户经理基本信息的查询和添加、删除、修改;客户经理辅助信息维护实现对证照列表模块的维护,包括证照列表信息的查询、添加、修改和删除。
在这里插入图片描述

3.项目实现

在这里插入图片描述
图1 用户管理分页查询功能-总览
在这里插入图片描述
图2 用户管理分页查询功能-条件查询
在这里插入图片描述
图3 用户管理添加功能-添加页面
在这里插入图片描述
图4用户管理添加功能
在这里插入图片描述
图5用户管理添加功能
在这里插入图片描述
图6用户管理修改功能-校验
在这里插入图片描述
图7用户管理修改功能-修改页面
在这里插入图片描述
图8用户管理修改功能-修改后返回列表
在这里插入图片描述
图9用户管理删除功能-删除后页面
在这里插入图片描述
图10用户管理删除功能
在这里插入图片描述
图11用户管理启用功能
在这里插入图片描述
图12用户管理启用功能
在这里插入图片描述
图13用户管理禁用功能
在这里插入图片描述
图14用户管理重置密码功能
在这里插入图片描述
图15学习园地模块修改功能-校验
在这里插入图片描述
图16学习园地模块修改功能-修改页面
在这里插入图片描述
图17学习园地模块修改功能-修改后返回列表页面
在这里插入图片描述
图18客户经理分页查询列表
在这里插入图片描述
图19客户经理信息修改页面
在这里插入图片描述
图20客户经理信息修改页面
在这里插入图片描述
图21修改成功后分页查询页面
在这里插入图片描述
图22客户经理信息修改页面-校验
在这里插入图片描述
图23客户经理辅助信息维护
在这里插入图片描述
图24客户经理辅助信息维护
在这里插入图片描述
图25客户经理辅助信息维护

4.技术总结

4.1 说明对系统逻辑结构设计的理解
逻辑结构设计是将概念结构设计阶段完成的概念模型,转换成能被选定的数据库管理系统(DBMS)支持的数据模型。这里主要将E-R模型转换为关系模型。 根据该系统最终的实现情况,最后的关系模型:
**系统用户表(**员工号、用户名、密码、性别、生日、Email、密码提示问题、问题答案、注册时间、最后登录时间、用户状态、角色)【主键:员工号】
学习园地资料表(资料编号、资料名称、资料类型、资料描述、存储路径、维护人、维护日期、是否公开)【主键:资料编号;外键:资料类型】
资料类型(类型编号、类型名称)【主键:类型编号】
客户经理表(员工号、姓名、性别、男女身份证号、出生年月、年龄、民族、政治面貌、学历、籍贯、照片、学位、毕业院校及专业、职务、专业技术职称、客户经理等级、所在单位、部门、业务条线、参加工作时间、入行时间、从事金融工作年限、客户经理从业年限累计学分、当年学分、退出时间、上年度考核结果、从业资格证书编号、从业资格证书发证时间、岗位证书编号、岗位证书发证时间、办公室电话、手机)【主键:员工号;外键:民族、政治面貌、学位、学历、专业技术职称、客户经理等级、客户经理状态】
民族(民族编号、民族名称)【主键:民族】
政治面貌(政治面貌编号、民族名称)【主键:民族】
学位(学位编号、民族名称)【主键:民族】
学历(学历编号、民族名称)【主键:民族】
专业技术职称(专业技术职称号、专业技术职称名称)【主键:民族】
客户经理等级(客户经理等级编号、客户经理等级名称)【主键:客户经理等级编号】
客户经理状态(状态编号、状态名称)【主键:状态编号】
证照列表(记录编号、客户经理编号、证件名称、证件类型、证件编号、发证单位、发证时间、失效时间、有效性、证书路径、作废标示、备注、维护日期、维护人)【主键:记录编号;外键:证件类型】
证件类型(类型编号、类型名称)【主键:类型编号】

4.2、对涉及到的数据库表及对表中数据所进行的处理说明

1.用户表:yc_member
用户ID(MEM_ID)为该用户表的主键,设置为int类型,不允许为空值;
用户密码(MEM_PASS)设置为默认值“1”,用来登陆时验证。
2.学习园地表:gzcrm_learn
资料ID(L_ID)为该学习园地表的主键,设置为int类型,不允许为空值;
该表中的资料类型(L_TYPE)为该学习园地表的外键,不允许为空值;
该表中的是否公开(ISPUBLIC)不允许为空值。
3.资料类型表:learn_type
类型ID(T_ID)为该资料类型表的主键,设置为int类型,不允许为空值。
4.客户经理信息表:gzcrm_cminfo
客户经理编号(CM_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;使用多个外键:民族、政治面貌、学位、学历、专业技术职称、客户经理等级、客户经理状态。
5.民族表:cm_nation
民族编号(NATION_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
6.政治面貌表:cm_political
政治面貌编号(P_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
7.学历表:cm_education
学历编号(EDUCATION_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
8.专业技术职称表:cm_professional_titles
专业技术职称编号(PROFESSIONAL_TITLES_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
9.学位表:cm_degree
学位编号(DEGREE_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
10.客户经理等级表:cm_level
客户经理等级编号(L_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
11.客户经理状态表:cm_status
客户经理状态编号(STATUS_ID)为该客户经理信息表的主键,设置为int类型,不允许为空值;
12.证照列表(gzcrm_certificate)
CM_KEY:该证照列表的主键,设置为int类型,不允许为空值;
CM_ID:客户经理编号,该证照列表的外键,设置为int类型;
certificate_type_id:证书类型编号,该证照列表的外键,设置为int类型。
13.证书类型表(certificate_type)
证书类型编号(certificate_type_id)为该证书类型表的主键,设置为int类型,不允许为空值。

4.3 开发过程中中主要有哪些处理过程会发生异常?

1.eclipse运行遇到出现错误;
原因:运行时路径出现错误/运行时Tomcat出现问题;
解决方法:修改路径、重启Tomcat或重新添加项目到Tomcat;
2.客户经理信息查询时,发生异常(如图):
在这里插入图片描述
原因:mapper文件出现错误SQL文编写时出现方法错误;
解决方法:修改路径、重启Tomcat或重新添加项目到Tomcat,修改mapper文件,如数据类型,字段名是否一致等问题。
3.登录系统时,无法登陆成功,出现404等问题;
原因:未启动Tomcat、数据库服务未启动或未连接、mapper文件错误,加载时出错等;
解决办法:连接数据库,开启服务,重启Tomcat,检查mapper文件;

4.4 在数据库设计阶段的使用的建模工具?

答:建模工具使用的是:PowerDesigner

4.5 用MyBatis访问Oracle/MySQL数据库主要过程是什么?通过示例说明访问过程?

答:用MyBatis访问MySQL数据库主要过程分为六步:
1.读取配置文件;
2.创建sqlSessionFactory;
3.开启sqlSession;
4.获取操作接口;
5.访问数据库;
6.关闭资源;
示例:用户登录系统
打开Tomcat运行该项目时,读取配置文件,创建sqlSessionFactory并开启sqlSession获取操作接口。系统界面输入登录名和密码,后台获取该信息,访问数据库进行数据查询,后台获取查询数据后,传输到客户端进入该系统,最后关闭资源。

4.6、开发过程中遇到的技术难点及解决办法?

1.在用户管理模块中,在用户编号为空时,姓名不为空时,无法进行条件查询;
a)原因:在数据转换时,无法将空值转换为int类型;
b)解决方法:在数据转换之前,先进行非空判断,如果为空时,则不进行数据转换,否则进行数据转换,如图:
在这里插入图片描述
2.在证照列表修改时,点击修改后无法获取到证照列表信息的值;
a)原因:无法通过传统的方式进行传值;
b)解决方法:在jsp页面运用ajax技术进行异步传值。
3.在修改或添加某条信息后,将此条信息显示在查询列表最上面;
a)解决方法:在数据库的表中添加两个字段create_time、update_time为timestamp类型,分别用于记录本条记录的创建时间和实时更新后的时间,在分页查询时,通过这两个字段进行排序。具体如下图:
在这里插入图片描述
在这里插入图片描述
4.条件查询后,最终查询出来的总条数随着查询出的数据的改变而改变;
a)解决方法:根据条件进行查询总数,如图:
在这里插入图片描述
5.通过数据库里两个表之间的联系,在查询页面上查询客户经理的编号获得客户经理的编号,如图:
在这里插入图片描述
6.客户经理辅助信息维护中证件列表与客户经理信息列表的关联,以及它们两个之间的逻辑关系:
a)解决方法:首先将修改或添加后的信息添加到数据库中,再在证照列表中根据该客户的证照信息通过select语句查询其该证照类型的有效的信息列,再在信息列中选择最近时间的一条信息返回。其中,返回信息分为两种,一种为该客户的证照信息对象,另一种为一个空对象。根据此返回的信息,进行该客户的证件信息更新,即完成客户信息中证件信息的实时更新,如图:
在这里插入图片描述
7.无法实现全选、复选;
a)解决方法:最初想法是根据表头的复选框是否被选中,更改表体中的复选框,使其更改为相反的状态。后来经过实践检验出逻辑不同,最终更改为传统方法:若被选中,则遍历循环更改表体中的所有复选框为选中状态;反之,为未选中状态;
在这里插入图片描述
8.在用户近期登陆后,在用户信息列表显示的最后登陆时间没有实时更新;
a)解决方法:通过在loginBean中增加last_time字段,获取用户最后登陆时间,同时更新数据库中用户表的最后一次登陆时间并显示到页面,如图:
在这里插入图片描述

4.7、系统开发过程中个人遵循了项目中规定的哪些开发规范?

1.对数据库、数据库对象如表、字段、主外键等的命名约定,类、结构体首字母大写,方法、参数、变量首字母小写;
2.命名使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割;
3.各表之间相关列名尽量同名;
4.除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;
5.命名只能使用英文字母,不允许用汉语拼音数字和下划线;
6.注释风格:注释单独成行、放在语句前面;
7.对较为复杂的SQL语句加上注释,说明算法、功能;
8.语句的所有表名、字段名遵照数据字典的定义,系统保留字、内置函数名、保留字、所有脚本全部大写;
9.常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围;
10.样式规范:引用js文件,对整个系统进行规范的样式设置;
11.异常规范:区分稳定代码和非稳定代码;不能使用try catch包裹所有代码,
进行异常捕捉不能try catch中嵌套try catch,只在非稳定代码中加try catch。

4.8、本项目主要是用什么办法监控项目进度的?

答:本项目主要通过组内互相监督、项目进度检查等办法监控项目进度的;
作业任务项:登陆模块、用户管理模块的查询、增加、删除、修改功能、学习园地管理模块的查询、增加、删除、修改、文件的上传和下载功能、客户经理信息管理模块的修改功能、客户经理辅助信息模块的修改功能。

4.9、本项目开发中获得的经验和不足?

通过这一段时间的学习与研发,了解掌握了SSM框架项目的整个设计流程,基本完成了该信息管理系统,了解了项目内各模块之间的逻辑联系,学习到新的知识或技术,学会简单应用MySQL数据库,完成对创建其的基本操作,接触到自己的知识短板,ajax技术可实现异步传值等。在进行客户经理信息表之间的关联时,更加深刻的理解了项目是各模块相互关联的完整系统,同时意识到在进行项目开发前一定要理清模块间的逻辑,同时在修改过程中,会增加对项目逻辑的更深理解,使程序间的逻辑更加严谨,思路更加通畅。
同时,在整个项目开发过程中,我深刻意识到一个项目从设计到完善,团队间的有效沟通、合作是必不可少的,只有每个人明确知道自己的任务,及时沟通,才可良好的完成项目。
通过这次项目,在以后的学习与实践中,一定会根据项目获得的经验,进行学习。同时,积累经验以各方面提升自己的项目开发的能力,学会应用所学的知识,学会举一反三。

5.完整内容

报告以及代码、sql脚本文件
在这里插入图片描述
在这里插入图片描述
嗨,我是射手座的程序媛,期待和大家更多的交流与学习,欢迎添加3512724768。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2078203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络优化2|最小生成树|Kruskal|Prim|Matlab

最小生成树问题 树 连通图 G ( V , E ) G(V,E) G(V,E),若G中不含任何回路,则称G为树。 ∣ V ∣ 1 |V |1 ∣V∣1时称之为平凡树 生成树 G ( V , E ) G(V,E) G(V,E),若G的一个生成子图是一棵树,则称之为G的一棵生成树&#…

Redis中的缓存穿透、缓存击穿、缓存雪崩(面试版)

缓存穿透 缓存穿透:查询一个不存在的数据,在mysql数据库中查询不到数据也不会写入缓存,导致每次请求都查询数据库,增加数据库负载。 解决办法: 1、缓存空值:将数据库中不存在的结果(例如空值)也缓存起来&#xff0c…

链式二叉树(C语言数据结构)

前言: 前期学习二叉树,包括堆,都是利用数组实现。 接下来就用链表的形式实现二叉树,并实现二叉树的相关功能。 二叉树前序遍历: 什么是前序遍历,任何一棵二叉树都可以分为根和左子树、右子树。 例如&…

【黑马点评】优惠券秒杀(单体模式)

优惠券秒杀业务流程 一人一单:要保证一个用户最多只能下一单 用户提交优惠券id根据优惠券id查询优惠券信息判断秒杀是否开始或结束,如果秒杀尚未开始或已经结束就直接返回错误信息判断库存是否充足,如果库存数量小于1就直接返回错误信息根据…

火源类型检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

火源类型检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

word技巧:保护Word文档页眉,确保内容不被随意修改

我们设置了页眉内容之后,不想其他人修改自己的页眉内容,我们可以设置加密的,设置方法如下: 先将页眉设置好,退出页眉设置之后,我们选择布局功能,点击分隔符 – 连续 设置完之后页面分为上下两节…

无线领夹麦克风哪个牌子好?麦克风品牌排行榜前十名推荐

在直播与Vlog盛行的当下,一款性能卓越、稳定可靠的无线领夹麦克风无疑是内容创作者的最佳拍档。然而,市场上的无线领夹麦克风种类繁多,质量参差不齐。不少商家为追求利润最大化,采用廉价材料制造,导致收音效果差、噪音…

SqlHelper 使用EF-Core框架

public async Task AddAsync<T>(T entity) where T : class{await _context.Set<T>().AddAsync(entity);await _context.SaveChangesAsync();} //增加实体 public 表面方法是公开的&#xff0c;所有其他类都可以调用 async 表方法内可能包含异步操作&#xff0c…

快手如何去水印教程,推荐五款免费高效去水印工具

随着互联网的快速发展&#xff0c;视频内容创作和分享变得越来越普及。很多视频创作者在分享自己的作品时&#xff0c;都希望能够去除视频中的水印&#xff0c;以保护自己的版权或提高视频的观感。本文将为您介绍五款高效的视频去水印工具&#xff0c;帮助您轻松去除视频中的水…

特斯拉CEO马斯克呼吁加州加强AI监管,市场关注国际贸易动态

特斯拉与AI监管&#xff1a;马斯克的倡议 特斯拉&#xff08;TSLA&#xff09;首席执行官埃隆马斯克&#xff08;Elon Musk&#xff09;周一在社交媒体上再次表达了他对人工智能&#xff08;AI&#xff09;监管的坚定立场。他呼吁加州通过SB 1047法案&#xff0c;要求科技公司和…

前端自我提升秘籍:用这个工具快速成为全栈开发者!

最近&#xff0c;有不少前端开发者都在讨论如何进一步提升自己的技能&#xff0c;尤其是那些一直在公司里负责后台管理系统的同学。毕竟&#xff0c;后台管理系统虽然重要&#xff0c;但往往功能固定、需求清晰&#xff0c;相对来说技术挑战有限。要想突破自己的技术瓶颈&#…

黑神话悟空配置要求_2024年黑神话悟空游戏电脑配置推荐

《黑神话&#xff1a;悟空》作为一款采用虚幻引擎打造的高品质游戏&#xff0c;对硬件配置有着一定的要求。包括操作系统、处理器、内存、显卡等多方面需求。有些同学一直问&#xff0c;黑神话悟空配置要求是什么&#xff1f;下面小编就针对这个问题给大家介绍黑神话悟空官方配…

查找算法刷题【二分查找算法】

一、原理 如下图所示的就是二分查找算法的原理&#xff1a; 注意&#xff1a;二分查找算法中一个重要的思想&#xff1a;数组和函数是一样的概念&#xff0c;对可以使用二分法查找要求如下所示。 &#xff08;1&#xff09;数组f[i]是有序数组 &#xff08;2&#xff…

mapstruct和lombok同时使用时,转换实体类时数据丢失

全局搜一下maps&#xff0c;找到你进行转换的方法 可以看到新建了TswCaseInfoPlus后直接返回了&#xff0c;说明TswCaseInfoPlus没有set方法&#xff0c;或者说编译后lombok没生效 在pom文件中&#xff0c;编译打包插件中将lombok&#xff0c;mapstruct&#xff0c;lombok-map…

武汉流星汇聚:未来已来,亚马逊多元化战略引领电商行业新纪元

在全球电商的浩瀚星空中&#xff0c;亚马逊无疑是最耀眼的明星之一。凭借其强大的品牌影响力、完善的运营体系以及不断创新的技术应用&#xff0c;亚马逊不仅在美国市场稳坐头把交椅&#xff0c;更在全球范围内不断拓展其业务版图。展望未来&#xff0c;亚马逊的未来发展前景依…

新生开学,需要带的东西有哪些!

每年开学季&#xff0c;先给学子们来个灵魂拷问&#xff1a;你们是否已经做好了迎接新挑战的准备&#xff0c;还是在迷茫中踏入新的征程&#xff1f; 不管怎样&#xff0c;我们先来解决下当下寄件问题。上大学要带啥&#xff1f;行李怎么寄便宜&#xff1f; 寄快递注意事项 …

[论文笔记] LLM-ICL论文:AI模型对prompt格式分隔符的敏感性——结构化Prompt格式

又见惊雷&#xff0c;结构化Prompt格式小小变化竟能让LLM性能波动高达76%&#xff0c;ICLR2024

在Windows上用Visual Studio编译Tesseract

Tesseract是著名的OCR&#xff08;文字识别&#xff09;开源项目。我想自己编译它的源代码。然而总体而言&#xff0c;大型开源项目在Windows上编译多少都会有些磕磕绊绊&#xff0c;如果有幸最后成功了&#xff0c;都值得写一篇文章来纪念一下。这便是本文的由来。 编译环境&…

CRMEB 多店版供应商入驻及管理

一、功能介绍 供应商于移动端提出入驻申请&#xff0c;平台可于入驻申请中审核&#xff0c;审核通过后&#xff0c;该供应商可于平台上架商品。 二、供应商申请 供应商入驻申请 一、功能介绍 平台可以设置商品的供应商&#xff0c;用户下单后由供应商直接发货&#xff0c;自…

FT8493PA-RT隔离型SOP8快充充电器电源IC

FT8493XX&#xff0c;FT8493PA-RT是应用于隔离反激电压变换器的- -款高性能PWM控制器.芯片工作在CCM模式,工作频率随着负载降低而减小.拥有更高的效率,更快的瞬态响应以及更低的待机功耗.同时使用内部抖频技术可以更好的处理ENI. FT8493XX内部集成高压启动可以更快的起机以及更…