客户信息增删改查系统
软件工程开发流程: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、单条件选择查询
相关推荐
在智能销售系统项目开发的第一天,我们主要关注的是基础架构的搭建和核心功能的初步实现。这个项目采用了Java技术栈,结合了Spring、SpringMVC和JPA等关键框架,来构建一个高效、灵活的后端系统。接下来,我们将详细...
V2X(Vehicle-to-Everything)技术是智能交通系统中的关键组成部分,...在实际项目中,结合这些协议和编码,可以构建出能够实时交换关键信息的V2X系统,从而提高道路安全,减少交通事故,并为未来的自动驾驶铺平道路。
【酒店管理系统bootstrap_day1】是针对酒店业务流程设计的一款基于前端框架Bootstrap的管理软件开发项目。Bootstrap是一款流行的、开源的前端框架,它提供了一系列预先设计的CSS和JavaScript组件,可以帮助开发者...
在手机卫士项目中,活动通常用于展示用户界面,服务可能用于后台运行的安全扫描,广播接收器则可以监听系统事件,如开机启动或接收到特定消息时执行安全检查。 二、用户界面设计 在Android Studio中,开发者通常...
在"简单分布式系统day02代码"中,完成的日志服务可能是为了收集、存储和分析应用程序生成的事件和错误信息。日志服务的重要性在于它能够帮助开发者快速定位问题,进行故障排查,并为系统的健康状况提供审计线索。在...
在本项目"javaweb基础班day19_3客户关系管理系统(带分页的增删改查)"中,我们将探讨几个核心的Java Web开发技术。这个系统旨在帮助新手理解如何实现一个实用的客户关系管理系统,其中包括了基础的数据操作功能如增...
"Mayday博客系统"是一个基于SpringBoot框架开发的博客应用程序,它提供了丰富的功能,包括文章发布、评论互动、用户管理等。SpringBoot是Java生态系统中的一个流行框架,它简化了创建独立的、生产级别的基于Spring的...
在Python编程语言中,爬虫是一项非常重要的技能,特别是在数据挖掘和数据分析领域。..."Day16"可能涉及了这些概念的某个或多个方面,通过深入学习和实践,你可以掌握Python爬虫的精髓,并应用于实际项目中。
智慧商城项目是一个典型的电商系统开发案例,涵盖了前端用户界面、后台管理系统以及数据库设计等多个方面的内容。在这个项目中,我们可以深入学习到以下关键知识点: 1. **前端开发**:使用HTML5、CSS3和JavaScript...
在本课程"方立勋javaweb视频day10网上购书系统"中,我们将深入学习如何构建一个基于JavaWeb的简单在线购书平台。这个系统涵盖了多项关键的Web开发技术,包括Servlet、JSP、数据库操作以及购物车功能的实现。通过这个...
在本资源中,“传智播客_Andorid_Android项目手机卫士视频video_day01视频.zip”是一个针对Android开发的教程,旨在教授如何构建一个名为“手机卫士”的应用程序。这个项目可能涵盖了许多Android开发的基础知识和...
很抱歉,但根据您给出的信息,"Day05-继续项目.rar"的描述过于简洁,没有提供足够的细节来生成一篇超过1000字的IT专业知识文章。标签为空,也无法提供额外的指导方向。通常,这样的文件名可能指的是某个课程或工作坊...
在本资源中,“传智播客_Andorid_Android项目手机卫士视频video_day04视频.zip”是一个针对Android开发的教程,特别是关于构建“手机卫士”项目的第四天教学内容。这个压缩包包含了day04的教学视频,帮助学习者深入...
在本项目"day24_Django项目实战-歌曲搜索"中,我们将深入探讨如何使用Django框架构建一个功能完备的在线歌曲搜索应用。这个实战项目旨在帮助开发者掌握Django的核心特性和实际应用,同时提升Web开发技能。我们将涵盖...
本项目的核心在于构建一个能够自动检测 Android 应用中 0day 漏洞的沙箱系统。整体思路可以概括为以下几个方面: 1. **APK 下载**: 首先需要建立一套可靠的 APK 文件获取机制,这通常涉及对 Google Play 商店的数据...
在这个"day65 分层实现商品管理系统"项目中,我们可以看到一系列按照功能划分的目录,如dao、service、view、exception、test、util和bean,这些都代表了不同的系统层次或组件。 1. **DAO层(Data Access Object)*...
基于JSP+servlet的物业管理信息系统源码+项目说明.zip # Property ## 物业管理信息系统 * 物业管理信息系统软件是一套具备记录、查询 **物业小区业主信息**、 **物业管理费用信息**、 **水电煤气费用信息**、 **有线...
session用于在服务器端存储用户信息,而cookie则在客户端保存数据,两者各有优缺点。 5. **过滤器与监听器**:day12的课程可能涉及了Servlet规范中的Filter和Listener。Filter可以对HTTP请求和响应进行拦截、修改,...