3.1.1数据库的概念结构设计
概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。
数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。
概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,
根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。
![]() |
![]() |
![]() |
||||||||||
|
|
|||||||||||
|
||||||||||||
(1)普通用户实体E-R图如图3.5所示:
图3.5普通用户E-R图
(2) 服装类别实体E-R图
图3.6 服装类别信息实体E-R图
(3) 服装信息E-R图
图3.6 服装信息实体E-R图
(5)管理员信息E-R图
图3.6 管理员信息实体E-R图
(6)订单信息E-R图
图3.7 订单信息实体E-R图
3.1.2数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOT NULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。
根据E-R模型,普通用户公寓管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)普通用户表主要是记录了普通用户基本信息。表结构如表3.1所示。
表3.1普通用户表(t_user)
实体 |
(2) 服装类别信息表主要是记录了服装类别的基本信息,表结构如表3.2所示。
表3.2服装类别信息表(t_catelog)
实体间关系 |
(3) 服装信息表主要是服装的相关信息,其中ID是主键,表结构如图3.3所示。
表3.3服装信息表(t_goods)
属性 |
(4)管理员信息表主要记录了管理员的账号信息,包括用户名和密码,表结构如表3.7所示。
表3.5管理员信息表(t_admin)
列名 |
数据类型 |
长度 |
允许空 |
是否主键 |
说明 |
user_id |
int |
4 |
否 |
是 |
用户ID |
user_name |
varchar |
50 |
否 |
否 |
用户名 |
user_pw |
varchar |
50 |
否 |
否 |
用户密码 |
user_realname |
varchar |
50 |
否 |
否 |
姓名 |
user_sex |
varchar |
50 |
否 |
否 |
性别 |
user_tel |
varchar |
20 |
否 |
否 |
联系方式 |
user_address |
varchar |
20 |
否 |
否 |
住址 |
(5)订单信息表主要记录的会员的订单的信息,包括订单编号、下单时间等,表结构如表3.7所示。
表3.6订单信息表(t_order)
列名 |
数据类型 |
长度 |
允许空 |
是否主键 |
说明 |
catelog_id |
int |
4 |
否 |
是 |
类别ID |
catelog_name |
varchar |
50 |
否 |
否 |
类别名称 |
3.1.3数据库的连接原理
本系统采用Hibernate对数据库进行管理。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。
Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图3.5所示:
图3.5Hibernatre架构图
图3.5显示了 Hibernate 的工作原理,它是利用数据库以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等来为应用程序提供数据持久化服务的。
Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。
第四章 系统功能实现
在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
4.1管理员登陆页面
1.描述:为了保证系统的安全性,要使用本系统必须先登陆到系统中。
2.程序运行效果图如图4.1所示:
图4.1 管理员登陆页面设计
3.在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码进行判断,如果正确提示“通过验证”,进入到管理界面,如果错误则提示“用户名和密码不正确”,页面调转到登陆页。
loginservice关键代码:
public String login(String userName,String userPw,int userType)
{
try
{
Thread.sleep(700);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
String result="no";
if(userType==0)//系统管理员登陆
{
String sql="from TAdmin where userName=? and userPw=?";
Object[] con={userName,userPw};
List adminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="no";
}
else
{
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
TAdmin admin=(TAdmin)adminList.get(0);
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
result="yes";
}
}
if(userType==2)
{
}
return result;
}
4.2管理员模块
1.描述:管理员主页面:左方页面展示了管理员可操作的七大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示。每个管理模块下面都有相应的子菜单。
2.程序运行效果图如图4.2所示:
图4.2管理员主页面
在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:
if(session.getAttribute("user")==null)
{
out.print("");
}
4.2.1服装类别管理
4.2.1.1类别信息录入
描述:管理员输入类别相关正确信息后点击录入按钮,如果是没有输入完整的普通用户信息,比如没有输入类别名称,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。
程序效果图如下图4.3所示:
图4.3 类别信息录入
3.流程图如下图4.4所示:
图4.4 服装类别信息录入流程图