SSM客户管理系统CRM开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点
  SSM 客户管理系统CRM是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
前段主要技术 html.css jquery
后端主要技术 SSM
数据库 mysql
开发工具 eclipse  JDK1.8 TOMCAT 8.5

视频链接 https://www.bilibili.com/video/BV1Ru4y1L7bm/

二、功能介绍
本系统模块实现功能如下:

(1)员工管理:对员工信息进行添加、删除、修改和查看
(2)菜单管理:对菜单信息进行添加、删除、修改和查看
(3)菜单权限管理:对菜单权限信息进行添加、删除、修改和查看 动态菜单实现
(4)职位管理:对职位信息进行添加、删除、修改和查看
(5)客户管理:对客户信息进行添加、删除、修改和查看
(6)联系人管理:对联系人信息进行添加、删除、修改和查看
(7)商机管理:对商机信息进行添加、删除、修改和查看
(8)邮件管理:对邮件信息进行添加、删除、修改和查看
(9)任务管理:对任务信息进行添加、删除、修改和查看
(10)产品管理:对产品信息进行添加、删除、修改和查看
(11)个人信息修改、登录

数据库设计

(1)员工信息表如表5.1所示:

表5.1 员工信息表

序号

字段名称

数据类型

长度

主键

描述

1

ygid

INTEGER

11

员工编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

qx

VARCHAR

40

权限

6

lxdh

VARCHAR

40

联系电话

7

lxdz

VARCHAR

40

联系地址

8

zw

VARCHAR

40

职位

(2)菜单信息表如表5.2所示:

表5.2 菜单信息表

序号

字段名称

数据类型

长度

主键

描述

1

cdid

INTEGER

11

菜单编号

2

cdmc

VARCHAR

40

菜单名称

(3)菜单权限信息表如表5.3所示:

表5.3 菜单权限信息表

序号

字段名称

数据类型

长度

主键

描述

1

cdqxid

INTEGER

11

菜单权限编号

2

cd

VARCHAR

40

菜单

3

qx

VARCHAR

40

权限

(4)职位信息表如表5.4所示:

表5.4 职位信息表

序号

字段名称

数据类型

长度

主键

描述

1

zwid

INTEGER

11

职位编号

2

zwmc

VARCHAR

40

职位名称

3

js

VARCHAR

40

介绍

(5)客户信息表如表5.5所示:

表5.5 客户信息表

序号

字段名称

数据类型

长度

主键

描述

1

khid

INTEGER

11

客户编号

2

khmc

VARCHAR

40

客户名称

3

jyfw

VARCHAR

40

经营范围

4

djsj

VARCHAR

40

登记时间

5

sm

VARCHAR

40

说明

6

lxdh

VARCHAR

40

联系电话

(6)联系人信息表如表5.6所示:

表5.6 联系人信息表

序号

字段名称

数据类型

长度

主键

描述

1

lxrid

INTEGER

11

联系人编号

2

kh

VARCHAR

40

客户

3

lxr

VARCHAR

40

联系人

4

lxdh

VARCHAR

40

联系电话

5

sm

VARCHAR

40

说明

控制层设计

@RequestMapping(value="/add")public String add(kehu kehu,HttpServletRequest request){//添加方法Map<String,Object> map= new HashMap<String,Object>();//初始化对象//String name=(String)request.getParameter("name");map.put("khid", kehu.getKhid());//客户编号map.put("khmc", kehu.getKhmc());//客户名称map.put("jyfw", kehu.getJyfw());//经营范围map.put("djsj", kehu.getDjsj());//登记时间map.put("sm", kehu.getSm());//说明map.put("lxdh", kehu.getLxdh());//联系电话String khid=(String)kehu.getKhid();//客户编号String khmc=(String)kehu.getKhmc();//客户名称String jyfw=(String)kehu.getJyfw();//经营范围String djsj=(String)kehu.getDjsj();//登记时间String sm=(String)kehu.getSm();//说明String lxdh=(String)kehu.getLxdh();//联系电话kehudao.save(map);//调用 add方法 保存kehu 数据request.setAttribute("msg", "<script>alert('添加成功');</script>");System.out.println("addok");return "kehu/kehuadd";}/**删除 kehu* */@RequestMapping(value="/del")public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){//	Map<String,Object> map= new HashMap<String,Object>();//初始化对象String a=(String)request.getParameter("keyid");//request 方式获得主键idid=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");kehudao.del(id);//调用 删除方法return selectall(null,map,request);}/*** 修改kehu信息*/@RequestMapping(value="/update")public String update(kehu kehu,HttpServletRequest request,Map<String,Object> map1){Map<String,Object> map= new HashMap<String,Object>();//初始化对象map.put("khid", kehu.getKhid());//客户编号map.put("khmc", kehu.getKhmc());//客户名称map.put("jyfw", kehu.getJyfw());//经营范围map.put("djsj", kehu.getDjsj());//登记时间map.put("sm", kehu.getSm());//说明map.put("lxdh", kehu.getLxdh());//联系电话String khid=(String)kehu.getKhid();//客户编号String khmc=(String)kehu.getKhmc();//客户名称String jyfw=(String)kehu.getJyfw();//经营范围String djsj=(String)kehu.getDjsj();//登记时间String sm=(String)kehu.getSm();//说明String lxdh=(String)kehu.getLxdh();//联系电话request.setAttribute("msg", "<script>alert('修改成功');</script>");kehudao.update(map);//执行update 方法return selectall(null,map1,request);}/*** 查询kehu信息*/@RequestMapping(value="/modify")public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idList<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象list=kehudao.select(Integer.parseInt(keyid));//根据id返回 kehu对象数据request.setAttribute("khid", list.get(0).get("khid"));//客户编号request.setAttribute("khmc", list.get(0).get("khmc"));//客户名称request.setAttribute("jyfw", list.get(0).get("jyfw"));//经营范围request.setAttribute("djsj", list.get(0).get("djsj"));//登记时间request.setAttribute("sm", list.get(0).get("sm"));//说明request.setAttribute("lxdh", list.get(0).get("lxdh"));//联系电话return "kehu/kehumodify";}@RequestMapping(value="/detail")public String detail(Integer id,Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idList<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象list=kehudao.select(Integer.parseInt(keyid));//根据id返回 kehu对象数据request.setAttribute("khid", String.valueOf(list.get(0).get("khid")));//客户编号request.setAttribute("khmc", list.get(0).get("khmc"));//客户名称request.setAttribute("jyfw", list.get(0).get("jyfw"));//经营范围request.setAttribute("djsj", list.get(0).get("djsj"));//登记时间request.setAttribute("sm", list.get(0).get("sm"));//说明request.setAttribute("lxdh", list.get(0).get("lxdh"));//联系电话return "kehu/kehudetail";}

持久层设计

public void save(Map<String, Object> map) {sqlSession.insert("com.chanpin.insertchanpin", map);//执行insert 插入方法}/*** 删除aa* @param id*/public void del(Integer id) {sqlSession.delete("com.chanpin.delchanpin", id);//执行delete 删除方法}/*** 修改chanpin信息* @param map*/public void update(Map<String, Object> map) {sqlSession.update("com.chanpin.updatechanpin", map);//执行update 修改方法}/*** 查询chanpin信息* @param id* @return */public List<Map<String, Object>> select(Integer id) {return sqlSession.selectList("com.chanpin.selectchanpin", id) ; //执行select 查询}

三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmcrm.sql 系统名称ssmcrm
4、地址:http://127.0.0.1:8080/ssmcrm/login.jsp

四 系统实现

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Socket通信之网络协议基本原理

一台机器将自己想要表达的内容&#xff0c;按照某种约定好的格式发送出去&#xff0c;当另外一台机器收到这些信息后&#xff0c;也能够按照约定好的格式解析出来&#xff0c;从而准确、可靠地获得发送方想要表达的内容。这种约定好的格式就是网络协议&#xff08;Networking P…

【STM32外设系列】JW01三合一空气质量检测模块

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、JW01模块简介二、数据格式介绍三、程序设计3.1 串口初始化3.2 串口接收中断服务函数3.3 数据解析函数 四、其他…

Sublime Text 3运行 Python文件出现中文打印乱码的解决方式

很多小伙伴在下载安装好sublime这个编辑器后发现&#xff0c;它虽然能够用来打开python脚本和创建文件编写代码&#xff0c;但是却不能够来运行python代码和程序。所以下面这一篇文章就是会来分享一下&#xff0c;sublime编辑器无法运行python的解决方法&#xff0c;感兴趣的话…

数据库数据恢复—MongoDB数据库文件拷贝出现错误的数据恢复案例

MongoDB数据库数据恢复环境&#xff1a; 一台Windows Server操作系统的虚拟机&#xff0c;虚拟机上部署有MongoDB数据库。 MongoDB数据库故障&检测&#xff1a; 在未关闭MongoDB服务的情况下&#xff0c;工作人员将MongoDB数据库文件拷贝到其他分区&#xff0c;然后将原数…

谷歌Freshness新鲜度算法:如何利用它提升网站排名?

今天我们就来深入了解下Google Freshness算法核心&#xff0c;结合案例研究和实用技巧&#xff0c;为我们自己的网站优化提供一些思路。 Google新鲜度算法和QDF Google的新鲜度算法和查询需求的新鲜度&#xff08;Query Deserves Freshness, QDF&#xff09;模型是为了改善特…

DLL文件的使用

DLL文件就是动态库文件&#xff0c;搞个例子就懂了&#xff0c;搞两个工程&#xff0c;一个工程生成DLL&#xff0c;一个工程调用DLL。 生成DLL工程 打开Visual Studio 2019&#xff0c;版本高了可能不行&#xff0c;创建新项目。 搜索DLL&#xff0c;动态链接库。 给项目起个…

如何用CHAT写励志文章?

问CHAT&#xff1a;写一篇以《过了60岁要积极面对身体疾病的坎儿》为题目&#xff0c;写一篇300字励志文章 CHAT回复&#xff1a; 标题&#xff1a;《过了60岁要积极面对身体疾病的坎儿》 人生&#xff0c;有时会像一趟不期而遇的旅程&#xff0c;各自带着乐观或悲观、阳光或…

SPSS系统聚类

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

OpenAI再次与Altman谈判;ChatGPT Voice正式上线

11月22日&#xff0c;金融时报消息&#xff0c;OpenAI迫于超过700名员工联名信的压力&#xff0c;再次启动了与Sam Altman的谈判&#xff0c;希望他回归董事会。 在Sam确定加入微软后&#xff0c;OpenAI超700名员工签署了一封联名信&#xff0c;要求Sam和Greg Brockman&#x…

什么是邮件签名证书?

邮件签名证书是一种证书&#xff0c;可以证明发送者的身份&#xff0c;并提供数据完整性和不可否认性的保障。接下来&#xff0c;我们将详细讨论这种证书的特点和用途。 概念 邮件签名证书是一种特殊类型的数字证书&#xff0c;允许发送者在电子邮件上签名和加密&#xff0c;…

Redis集群主备切换原因排查

背景 线上redis部署的是三主三集群&#xff0c;昨天中午&#xff0c;线上各服务接连告警&#xff0c;提示服务已下线&#xff0c;过一段时间又上线了&#xff08;springboot-admin企业微信服务下线、上线告警&#xff09;&#xff0c;赶紧放下手中外卖排查。 排查 1. 查看各…

原来RocketMQ消息会重复消费是无奈的”Bug“

消息发送异常时重复发送 首先&#xff0c;我们来瞅瞅RocketMQ发送消息和消费消息的基本原理。 如图&#xff0c;简单说一下上图中的概念&#xff1a; Broker&#xff0c;就是RocketMQ的服务端&#xff0c;如上图就有两个服务实例Topic就是一类消息集合的名字Queue就是Topic的…