文档介绍:第三章示例”项目”分析与设计 2
第一节需求分析 3
第二节静态界面设计 5
第三节对象模型 5
第四节数据模型 5
第五节基于JSP-JavaBean-JDBC实现的详细设计 6
第四章持久层之JDBC实现 11
第一节联接数据库-准备 11
第二节示例项目实现之一准备 15
第三节示例项目实现之二:创建User类 16
第四节示例项目实现之三:实现DBConnection类 19
第五节示例项目实现之四:实现UserDao类 24
第五节 JDBC其他内容介绍 39
第三章示例”项目”分析与设计
本教程希望通过一个比较完整、有一定典型意义、比较容易理解、具一定实际含义的示例性项目,说明基于JavaEE开发的接近于工程化的过程、所使用的关键技术、不同框架下的实现及其比较。笔者希望读者在阅读本教程的同时,能按着本教程所示的步骤,给出的代码,开发出示例程序,这样在你学完本教程后,也就使用了若干技术开发出了示例项目,在这过程中,你学习了关键代码、积累了编码经验,修改了许多bug,使用并体会了关键技术的应用。
毫无疑问这样一个示例性项目的取舍非常重要,若项目的规模太大,则不易在一本书中展开,但若太小又可能不足以说明实际开发中的一些问题,同时我们还希望,此项目有一定的代表性,以便能说明相关技术关键点。当然,我们还会给出一些其它实例,通过这些实例说明一些重要的核心的概念,而这些核心概念可能在示例项目中没有得到充分体现。
用户注册、登录等相关功能几乎在所有的网站上都会用到,我们就以此作为示例项目,我们要实现的功能是:
用户注册;
用户登录;
修改用户信息;
列表显示用户信息;
删除用户。
下面我们先对这个简单系统进行需求分析、界面设计,并建立对象模型、数据模型,为后面的实现作好充分的基础。
第一节需求分析
需求分析关注系统做什么。有许多技术可以用于需求分析,用例(UseCase)技术是其中之一。使用这种技术,我们要寻找出系统有哪些使用者或角色(Role),这些使用者使用系统能做什么工作,完成对使用者有益的任务。并且要详细的描述出使用者完成一项任务的流程,以及在这个过程中,使用者做了什么,系统又做了什么。一个用例大致相当于一个功能。
在我们的示例项目中,角色就是未注册的用户以及已注册的用户,未注册的用户可以注册到系统,已注册用户则可以登录到的系统、修改已注册信息、查看系统中的已有用户,并管理用户(此处即删除用户)。示例系统的用例模型如图3-1所示。
图3-1 示例项目的用例图
这样一个示例项目的概念模型很简单,就是一个用户,且没有考虑与系统中其它概念之间的关联。
用例规范说明:
用例名称:登录
概述:用户必须登录才能使用系统,以完成用户有权限完成的工作
事件流:
A、用户进入登录页面,本用例开始;
B、用户输入登录名、密码,并按“登录”按钮;
C、系统查看登录名、密码是否正确,若不正确,则提示用户其输入的登录名与密码错误,转向A,用户重新输入登录名与密码;
D、若正确,则登录成功,系统转向首页面,本用例结束。
其它说明:
登录名、密码是必填项,若用户没有输入,则提示用户必须输入用户名或密码。
用例名称:注册
概述:本用例角色为还没有注册到系统的用户。
事件流:
A、用户进入注册页面,本用例开始;
B、用户输入登录名(必填)、密码(必填)、出身日期、e-mail、地址,并选择性别、民族;
C、用户可以点击检测登名是否唯一按钮,系统检查登录名是否唯一,并告知结果。
D、用户按“保存”命令,系统检查登录名是否唯一,若所给登录名已存在,则提示用户登录名已存在,返回到输入页面,用户重新输入登录名,注意此时应保留用户已输入的信息;
E、若正确,系统保存用户信息,本用例结束。
其它说明:
用户注册后,即可登录本系统。
用例名称:修改用户信息
概述:已登录系统用户可以修改自已的信息,注意注册之后,登录名不可修改。
事件流:
A、用户进入修改页面,本用例开始;
B、用户修改密码(必填)、出身日期、e-mail、地址,并选择性别、民族;
C、用户按“保存”命令,系统保存用户修改信息,本用例结束。
其它说明:
用例名称:删除用户信息
概述:对不合法用户,系统可以删除这些用户。
事件流:
A、用户进入列表显示用户信息页面,本用例开始;
B、系统以列表并分页的形式显示已存在用户信息,用户还可以通过输入用户名快速的查找到用户;
C、用户选择要删除的用户(可以多选);
C、用户按“确认”命令,系统删除所选用户信息,并返回到用户列表页面,本用例结束。
其它说明:
第二节静态界面设计
当用户没有