当前位置:首页 > 停车场毕业论文
基于J2EE的停车场管理系统的设计与实现
(4)管理员信息E-R图 用户ID
登陆账号 登陆密码 管理员 图3.4 管理员信息实体E-R图
3.1.2数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系 *所有的主键必须定义非空(NOT NULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。 根据E-R模型,停车场管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)操作员表主要是记录了操作员基本信息。表结构如表3.1所示。
表3.1操作员表(t_caozuoyuan)
列名 id xingming xingbie nianling loginname loginpw
(2)会员信息表主要是记录了停车场会员的基本信息,表结构如图3.2所示。
数据类型 int varchar varchar varchar varchar varchar 长度 允许空 是否主键 4 否 是 50 否 否 50 否 否 50 否 否 20 否 否 20 否 否 说明 编号 姓名 性别 年龄 登陆账号 登陆密码 基于J2EE的停车场管理系统的设计与实现
表3.2会员信息表(t_xingcai)
列名 数据类型 id Int kahao varchar xingming varchar xingbie varchar nianling varchar banlishijian varchar
(3)停车信息表主要是记录了车辆停车的基本信息,表结构如图3.3所示。
表3.3停车信息表(t_ruchang)
列名 数据类型 id Int rushijian varchar chexing varchar chehao varchar kahao varchar beizhu varchar chushijian varchar feiyong varchar
(4)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表3.7所示。
表3.7管理员信息表(t_admin)
列名 userId userName userPw
数据类型 int varchar varchar 长度 允许空 是否主键 4 否 是 50 否 否 50 否 否 说明 编号 用户名 密码 长度 4 4 50 50 50 50 50 50 允许空 是否主键 否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 说明 编号 入场时间 车型 车牌号 停车卡号 备注信息 出场时间 费用 长度 允许空 是否主键 4 否 是 4 否 否 50 否 否 50 否 否 50 否 否 50 否 否 说明 编号 卡号 会员姓名 性别 年龄 办卡时间 3.1.3数据库的连接原理
采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是
基于J2EE的停车场管理系统的设计与实现
DAO模式来操作数据库,DAO(Data Access Object,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图3.10所示:
BusinessObject 使用 DataAccessObject 封装 DataSource 获取/修改 DataTransferObject
图3.10 DAO模式类图
创建/使用 图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:
public DBContent(){
String CLASSFORNAME=\;//连接数据库的驱动 String url=\; String user=\;//连接数据库的用户名 String password=\;//连接数据库的密码 try{
Class.forName(CLASSFORNAME);
con= DriverManager.getConnection(url,user,password);//加载数据库的驱动
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCU } }
}
ex.printStackTrace();
R_UPDATABLE);
catch(Exception ex){
在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。
基于J2EE的停车场管理系统的设计与实现
3.2中文乱码问题处理
在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。
在web.xml中配置:
对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter(\); String value = filterConfig.getInitParameter(\); }
在工具包util包中同样定义了DataFormate类来处理字符转换:
public static String toUni(String gbStr){ String uniStr = \; /*把字符串转换成uincode编码*/ if(gbStr == null){ gbStr = \; } try{
byte[] tempByte = gbStr.getBytes(\); uniStr = new String(tempByte,\); }catch(Exception ex){ }
return uniStr; }
/* 把字符串转换成Utf8编码*/
public static String toUtf8String(String s) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= 0 && c <= 255) {
共分享92篇相关文档