客户信息增删改查系统
软件工程开发流程:1、瀑布模型 2、螺旋模型
RUP (Rational Unified Process,统一软件开发过程 ) 采用瀑布模型: 需求 --- 需求分析 --- 系统设计(概要、详细设计)---- 编码 --- 测试 --- 实施 --- 维护
* 瀑布模型 缺陷在编码结束之前,客户看不到最终软件产品 ,如果需求、设计出现明显错漏,导致软件后期无法维护,存在重大缺陷
* 瀑布模型对于 新型软件,需求不定软件 风险较大
敏捷开发理念:迭代开发模式 ,将系统功能分成若干批次 ,对每部分功能实施瀑布模型流程 ,系统随时看到开发结果,始终存在可用软件产品
* 增量开发 ,中途发现设计错误,很容易调整
1、需求 客户信息增删改查
2、系统设计
数据库设计 E-R图
创建数据库 create database customersystem;
* 每个软件都会为数据库创建单独用户并授权
创建用户:create user flower identified by 'flower';
授权:grant all on customersystem.* to flower;
创建数据表
create table customer (
id varchar(40) primary key not null,
name varchar(20) unique not null,
gender varchar(10) not null,
birthday date not null,
cellphone varchar(20) not null,
email varchar(40) unique not null,
preference varchar(100),
type varchar(40),
description varchar(255)
);
----------------------------------------------------
启动navicat lite ---- 创建Connection(name随意写,填写用户名、密码)
双击打开连接
在连接上右键点击 new Database --- 创建数据库 customersystem
双击数据库 开发数据库
在数据库/Table右键 new Table ---- 创建数据表 customer
在工具上方点击manager users --- Add User 创建 flower用户
点击用户展开后 具体数据库 ---- select All 为用户flower 授予 customersystem 所有权限
----------------------------------------------------
系统功能设计
1) 技术选型 mysql + Servlet + JSP + EL +JSTL + BeanUtils + c3p0 + DBUtils
2) 搭建工程环境
创建customermanager 工程 ,将jar包复制 WEB-INF/lib
准备c3p0配置文件
3) 创建package 结构 (javaee三层结构)
cn.itcast.customer.web
cn.itcast.customer.service
cn.itcast.customer.dao
cn.itcast.customer.domain
cn.itcast.customer.utils
使用c3p0、DBUtils ---- 需要工具类
实体类 Customer
4) 发布客户管理系统 ----- 虚拟主机方式
配置tomcat/conf/server.xml 添加虚拟主机 www.customer.com ---- 路径指向工程根目录
<Host name="www.customer.com" appBase="D:\work\myclipse\work20120605\customermanager" ...>
修改本地hosts文件 添加域名解析 ---- 127.0.0.1 www.customer.com
将工程下发WebRoot 配置缺省虚拟目录 <Context path="" docBase="WebRoot" />
5) 设计 增加、查询、删除、修改 四个功能 --- UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言
绘制UML工具 很多:Rantional Rose、Microsoft Visio、starUML 、jude(纯java开发)
* UML 做软件 建模(分析设计) : 用例图、类图、时序图
-----------------------------------------------------------------------------------------
企业开发中 UML 序列图 : 以时间顺序 描述系统功能流转
编码
1、客户信息添加
add.jsp(编写客户添加form表单 JS表单校验) ----- AddCustomerServlet(web层 封装form数据到JavaBean对象中;传递JavaBean给业务层处理) ---- CustomerService(业务层) --- CustomerDAO(数据层 完成表插入) ---- web层会根据业务层处理结果 选择跳转页面
2、查看(所有)客户信息
index.jsp (提交链接) ------ ListCustomersServlet(web层,直接调用业务层获得结果) ---- CustomerService(业务层) --- CustomerDAO(数据层 完成所有客户信息查询) ---
web层根据业务层结果选择跳转页面(list.jsp) ---- list.jsp(JSTL+EL 显示List结果)
3、客户信息删除
单行删除 (在每行数据后面 都可以提供删除按钮/链接) ---- 点击链接 删除该行显示数据
list.jsp(删除链接) ------ 提交客户编号DelCustomerServlet(获得编号,传递编号业务层) ---- CustomerService(业务层传递编号数据层) --- CustomerDAO(delete) --- web层决定跳转页面(list.jsp在显示list.jsp之前先查询所有数据 , 跳转ListCustomersServlet )
* 在删除功能上添加确认操作 (JavaScript)
方案一:阻止href默认事件
FF e.preventDefault()
IE window.event.returnValue = false;
方案二:链接没有提交,在js中判断用户确认删除,用js提交链接事件 location.href
批量删除 (在每行数据之前添加 checkbox )
* 全选JS操作,全部选中、全部取消
* 批量删除添加确认 onsubmit="return confirmBatchDel()"
* 批量删除过程中,添加事务管理
4、客户信息修改操作
流程一:客户信息查询
list.jsp(每行数据后面添加修改链接) ---- ShowCustomerServlet(接收编号传递编号业务层) --- CustomerService --- CustomerDAO ---- web层会接收 返回customer对象,传递customer对象到jsp (update.jsp 将数据回显form中)
流程二:客户信息修改
update.jsp (包含隐藏id所有客户信息) ---- UpdateCustomerServlet(封装form数据到javabean,传递javabean给业务层) ---- CustomerService --- CustomerDAO ---- web层跳转客户信息列表页面(/listCustomers)
-----------------------------------------------------------------------
为什么需要分页?数据过多,一页内无法显示,分页显示
分页技术实现:两种
物理分页:在数据库执行查询时(实现分页查询),查询需要的数据 ---- 依赖数据库SQL语句
逻辑分页:先查询所有数据到内存,再从内存截取需要数据 ------- 采用程序内部逻辑
物理分页:Mysql /SQLServer / Oracle 每种数据库写法不同的
mysql 使用limit ,SQLServer 使用top 、Oracle使用rowNum
limit语法 : select .... limit 开始记录索引,记录条数
select * from table limit 10,20; // 索引从0开始 10代表11条 ------ 从11查询30条
逻辑分页:查询所有数据 List, list.subList 截取你需要数据
例如:查询11-30条 list.subList(开始索引,结束索引); // 前取到,后取不到 ----- list.subList(10,30);
** 性能上 :物理分页好于逻辑分页 ---- 尽量使用物理分页
分页页面效果:
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 跳转XX页
* 首页哪页 -- 1 尾页哪页 - ?
* 页码不能全部显示 (google以当前页页码为中心,前后各10页) ---- 左面显示最小页码(首页) 右面显示最大页码(尾页)
* 总页数
重构上午编写分页查询 :分页查询都会用单独类来封装查询结果 PageBean ----- 在业务层返回数据返回PageBean对象
------------------------------------------------------------------------------------------------------------------
条件查询 :单条件和复合条件
单条件查询,在页面内提供select框,用户选择查询字段,输入值
list.jsp ---- 提交查询条件 ConditionQueryServlet(获得条件 传递业务层) ---- CustomerService --- CustomerDAO --- web层获得结果,将结果传递list.jsp显示
* 因为很多字段选择,所有每个字段处理方式可能不一样 姓名模糊查询 手机等值查询,if判断处理
* 模糊查询时,不知道查询条件 like '%%';代表任意字符串 --- 查询所有数据
---------------------------------------------------------------------
系统功能:
1、客户信息添加
2、客户所有信息查询
3、客户信息删除(单行删除、批量删除)
4、客户信息修改
5、添加分页查询
6、单条件选择查询
相关推荐
基于JSP+servlet的物业管理信息系统源码+项目说明.zip # Property ## 物业管理信息系统 * 物业管理信息系统软件是一套具备记录、查询 **物业小区业主信息**、 **物业管理费用信息**、 **水电煤气费用信息**、 **有线...
后台管理: 后台系统主要包含以下功能: 商品管理,包括商品分类、品牌、商品规格等信息的管理 销售管理,包括订单统计、订单退款处理、促销活动生成等 用户管理,包括用户控制、冻结、解锁等 权限管理,整个网站的...
在毕业设计的挑战中,有时我们需要以极短的时间完成一个相对复杂的项目,比如一个商城系统。虽然时间紧迫,但只要我们合理规划、高效执行,完全有可能在4天内完成一个基础且功能完备的商城系统。 商城系统,也被称为...
在毕业设计的挑战中,有时我们需要以极短的时间完成一个相对复杂的项目,比如一个商城系统。虽然时间紧迫,但只要我们合理规划、高效执行,完全有可能在4天内完成一个基础且功能完备的商城系统。 商城系统,也被称为...
在毕业设计的挑战中,有时我们需要以极短的时间完成一个相对复杂的项目,比如一个商城系统。虽然时间紧迫,但只要我们合理规划、高效执行,完全有可能在4天内完成一个基础且功能完备的商城系统。 商城系统,也被称为...
在毕业设计的挑战中,有时我们需要以极短的时间完成一个相对复杂的项目,比如一个商城系统。虽然时间紧迫,但只要我们合理规划、高效执行,完全有可能在4天内完成一个基础且功能完备的商城系统。 商城系统,也被称为...
ERP_day11_CXF框架_红日物流BOS系统_ERP物流信息管理 ERP_day12_Easyui--Thee插件_权限管理_权限菜单_用户角色权限 ERP_day14_Shoir颗粒认证-redis缓存机制提升软件性能_svn协作开发 ERP_day15项目展示 13-...
,key,,1)key=‘房屋信息登记‘=this.listview1.listitems.add(,,key,,1)key=‘系统数据设定‘=this.listview1.listitems.add(,,key,,1)在“经营部”的click事件中添加代码为:this.parent.listview1.listItems.clear...
◆ 修改系统用户信息; ◆ 最新网上购物系统 删除系统用户信息。 <p><B>功能模块划分最新网上购物系统 ><B></B> 从功能描述的内容可以看到,本系统最新网上购物系统 可以实现六个完整的功能。根据这些功能,设计出...
根据token取用户信息.avi │ 10.用户注册、登录页面.avi │ 11.首页展示登录的用户名.avi │ 12.拦截器处理请求.avi │ 打开必读.txt │ 淘淘商城第十天笔记.docx │ ├─11.第十一天 │ 01.内容回顾.avi │ 02....
1、进货管理中增加供应商日进货汇总表(RP_DayIn_Total_byVendor.sql) 2006-09-19 1、 修正领料单删除件库存不会增加问题 2、 修正领料单查询会重复的问题(vOutStore1Detail.sql) 2006-09-25 1、pos管理中增加...
04 python s3 day46 mysql的数据类型 05 数据表操作 06 表记录之增删改操作 07 表记录查询之查询 第47章 01 多表查询之连接查询 02 级联删除与set null 03 多表查询之连接查询 04 多表查询之复合查询与子查询 05 ...
{ 项目名称 } 用户界面设计报告 "文件状态: "文件标识:"Company-Project-SD-UI " "[ ] 草稿 " " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本:"X.Y " " "作 者:" " " "完成日期:"Year-Month-Day " ...
云服务器数据安全保护软件项目询价文件 一、项目编号:计算机学院2017【009】号 二、项目名称:云服务器数据安全保护软件 三、采购预算:12.1万元 四、采购设备清单与技术参数 " 指标项 "需求说明 " "系统环境 " ...
最新公告 注意,本Superl-l采集工具的python版本,本版本在linux下完美运行,winodws...程序主要运用于安全渗透测试项目,以及批量评估各类CMS系统0DAY的影响程度,同时也是批量采集自己获取感兴趣的网站的一个小程序~~
曾一度入侵中国的移动运营商获取用户的短信信息,入侵国内部分运营商的主干网络获取用户信息。 2023/6/4 网络安全培训全文共82页,当前为第10页。 用户安全意识 安全意识的培养 安全意识的重要性安全威胁无处不在。...
电子商务平台一期 数据库设计文档 版本号:1.00 二 一〇年十月 项目情况 "项目编号 " " "项目名称 " " "项目经理 " " "需求分析工程师 " " "系统设计工程师 " " 修改记录 "版本号 "发布日期 "作者 "评审人 "变更的...
电子商务平台一期 数据库设计文档 版本号:1.00 二 一〇年十月 项目情况 "项目编号 " " "项目名称 " " "项目经理 " " "需求分析工程师 " " "系统设计工程师 " " 修改记录 "版本号 "发布日期 "作者 "评审人 "变更的...
" "sys_user(用户表) "保存用户的信息 " "orders(订单表) "保存客户的订单信息 " "orders_line(订单明 "保存订单明细 " "细表) " " "Product(商品表) "保存商品的信息 " "Storage(仓库表) "保存仓库信息 ...