论文部分内容阅读
摘要:该文通过对校园报亭销售管理系统的需求、校园一卡通的研究背景、内容及意义进行了详细的分析,利用JSP技术结合MVC模型,详细介绍基于一卡通的校园报亭管理系统的设计全过程。
关键词:一卡通;校园报亭;管理系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)31-0087-02
1 概述
目前高校的学生生活中,学校为了方便统一的管理,基本都是实现刷卡管理,包括消费方面的学校食堂、教育超市、浴室、洗衣机等;管理方面的图书馆书籍借阅、体育刷卡、门禁刷卡等方面。校园报亭是我校学生勤工助学的重要基地,本文针对校园一卡通在本校报亭销售系统中的应用,采用JSP技术,基于Mysql数据库,设计了一个报亭销售管理系统,体现了校园一卡通在方便学生生活中的一方面的实际应用。
2 系统总体结构设计
2.1 功能需求分析
校园报亭销售系统是以在服务在校学生为目标,其主要的功能就是可以方便学生直接网上购買报亭内的各类书刊、杂志等。因此本系统主要的用户分为普通用户和系统管理员这两类。
系统管理员的主要功能有:
对报亭销售的商品进行管理,主要包括:商品上架、商品信息修改、商品删除、商品信息查询;
对个人信息的管理,包括:查询个人的账户信息、修改个人信息、修改密码等基本的功能;
对商品销售情况的管理:查询商品的销售信息,按时间统计销售额,销售报表的输出与打印。
对校园用户的管理,主要包括:查询校园用户的基本信息、删除校园用户信息、查询校园用户的交易记录等。
校园用户的主要功能有:
查看报亭的商品信息;个人信息管理,主要有:账户管理、信息查看、密码修改等;商品选择、购物车管理、结算等功能,可以批量也可以单独购买网站里的任何的商品,现场购物用户可直接刷校园卡结算。
2.2 数据库设计
校园报亭销售管理系统的数据库是通过MySql建立的,根据功能分析,理清了数据流向及实体之间的各种关键后,建立了管理员表、校园用户表、报亭商品表、购物车表、校园用户购买记录表。
首先,对于用户的管理方面,必须要有管理员信息表和用户信息表,将管理员用户和普通用户的信息都存在这些表内。同时商品信息也要单独存放。另外因为要实现用户可以同时购买多种商品,所以也添加了一张购物车信息表,用来保存购买过程中的信息,同时方便在后台中批量管理。最后还有一张用户购买记录表,这张表存放了用户的交易信息,方便查看用户的信息。
在这些数据表中,相互关联的主要有用户信息表字段、商品信息表字段和购物车信息表字段之间的有关联;用户信息表字段、商品信息表字段和用户购买记录表字段之间有关联,下面介绍部分关键的表。
1) 管理员信息表
管理员信息表,用来存储管理员账户的基本信息,包括管理员ID、姓名、密码、密码盐(为增强密码保密性,而创建管理员时随机生成的一串字符,与用户密码运算后保存在用户密码字段)、报亭ID,并留一个备用字段。管理员信息表的设计信息如表1所示。
2) 商品信息表
商品信息表主要是用来保存商品信息。其字段主要有:商品ID、商品名、商品图片的链接、商品单价、商品的详细说明、发布的时间、商品库存,并留两个备用字段作为将来的其他功能的使用。商品信息表的设计如表2所示。
3 一卡通第三方介绍
一卡通系统中,为统一数据格式,对持卡人所属部门做了定义:一卡通定义的持卡人的部门对应的代码,长度18个字节,下面是代码对应的意义:1~3:校区代码,4~6:一级部门代码,4~9:二级部门代码,4~12:三级部门代码,4~15:四级部门代码,4~18:五级部门代码。
为提高校园一卡通的安全性,除一卡通自身业务外,其它第三方的业务都是通过校园一卡通系统提供的第三方接口安全接入一卡通系统,下面简要介绍几个重要的接口:
3.1 第三方接入初始化函数
Bool TA_Init(string ServerIP , int PortNumber , int SysCode, int TerminalNo, boolean *ProxyOffline, long *MaxSno)
该接口的功能是实现第三方的业务系统初始化与第三方代理服务器的连接,其中:ServerIP表示第三方代理服务器的IP地址;PortNumber表示第三方代理服务器的端口号;SysCode表示一卡通系统给第三方业务系统分配的系统代码;TerminalNo表示第三方系统当前连接第三方的终端编号;出口参数ProxyOffline表示代理服务是否脱机;MaxSno表示当前第三方业务系统已有的最大流水号。返回True表示该接口调用成功,返回False表示接口调用失败。
3.2 跟读卡器操作相关的函数
1) int TA_CRInit(char CdReaderType,int ReaderPort,long BaudRate);
该接口的功能是实现读卡器的初始化,其中:CdReaderType表示读卡器类型,0表示接口为USB,1表示接口为串口,ReaderPort表示串口读卡器的串口号,0~1分别代表串口1~4;
BaudRate表示串口读卡器的波特率。返回0表示初始化读卡器成功,非0值表示读卡器初始化失败。
2) BOOL TA_CRClose();
该接口的功能是关闭当前会话中的读卡器,返回True表示关闭成功,False表示关闭失败。
3) int TA_FastGetCardNo(int *CardPhyNo); 该接口的功能用来快速轮询读取卡片内的物理序列号,通过出口参数记录当前读到的物理序列号,如果没有卡在上面则出口参数里面记录为-1。
通过该接口结合程序设计中的循环结构,可以轻松实现读卡器的无限轮询,让读卡器随时读取上面的卡片。
4) int TA_CRBeep(int BeepTime);
该接口的功能是用来启动读卡器的蜂鸣功能,通过该接口来提醒用户本次读卡已经完成,不表明读卡成功或失败,BeepTime表示读卡器蜂鸣的时间长度,单位为毫秒。
4 关键代码分析
代码设计对系统的安全性和性能都有着直接的影响,因此,代码设计也是整个设计中关键部分。数据库连接是系统具体实现与数据存储之间的桥梁,系统中的增、删、改、查都是基于这个桥梁,在系统的设计过程中,把数据库的四大基本操作都集成到一个模块中。具体代码如:
4.1 數据库连接代码,系统中所有的数据库操作都基于这个连接。
public ComDbOpt()
{ if( ds == null )
{ try
{ Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
ds = (DataSource) envContext.lookup("jdbc/mysql");// 这里根据配置更改 }
catch (Exception e)
{ System.err.println(e.getMessage()); }
}
}
4.2 数据库中数据的四大基本操作是最平常的,系统里通过一定的集成,将数据库的基本融合到一个函数里,其它地方需要时只需简单的调用
public boolean update() throws java.io.UnsupportedEncodingException
{ try {
if (query_statement.equals("")) return false;
if(IsConnClosed()) this.getConnection();
if (null == this.con) {
throw new NullPointerException("未获得数据连接");
}
PreparedStatement update_stm = con.prepareStatement(query_statement);
if (param != null) {
for (int i = 0; i < param.length; i ) {
update_stm.setString(i 1, param[i]); }
}
int rowsaffected = update_stm.executeUpdate();
update_stm.close();
this.param = null;
return true;
} catch (SQLException ex) {
System.out.println(ex.getMessage());
return false;
} catch (NamingException ex) {
System.out.println(ex.getMessage());
return false;
} finally {// 这里可以关闭,不会有错!
this.param = null;
try { this.con.close();
} catch (SQLException ex) {
System.out.println("数据连接关闭失败");
}
}
}
5 结束语
基于校园一卡通的报亭销售管理系统是根据软件开发的流程来设计和实现的,通过系统需求分析、系统设计来分析划分系统功能,并且以此为基础内容来设计并实现数据库。系统的投入使用,更加方便地实现同学们及时了解某个校园报亭的书籍、杂志、报纸、饮料等商品情况的需求,通过该系统可以在线下单并使用校园一卡通在线支付或者到报亭刷卡支付,提高了校园报亭的勤工助学同学的工作效率,同时对校园报亭的销售额的提升也做出了一定的贡献。
关键词:一卡通;校园报亭;管理系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)31-0087-02
1 概述
目前高校的学生生活中,学校为了方便统一的管理,基本都是实现刷卡管理,包括消费方面的学校食堂、教育超市、浴室、洗衣机等;管理方面的图书馆书籍借阅、体育刷卡、门禁刷卡等方面。校园报亭是我校学生勤工助学的重要基地,本文针对校园一卡通在本校报亭销售系统中的应用,采用JSP技术,基于Mysql数据库,设计了一个报亭销售管理系统,体现了校园一卡通在方便学生生活中的一方面的实际应用。
2 系统总体结构设计
2.1 功能需求分析
校园报亭销售系统是以在服务在校学生为目标,其主要的功能就是可以方便学生直接网上购買报亭内的各类书刊、杂志等。因此本系统主要的用户分为普通用户和系统管理员这两类。
系统管理员的主要功能有:
对报亭销售的商品进行管理,主要包括:商品上架、商品信息修改、商品删除、商品信息查询;
对个人信息的管理,包括:查询个人的账户信息、修改个人信息、修改密码等基本的功能;
对商品销售情况的管理:查询商品的销售信息,按时间统计销售额,销售报表的输出与打印。
对校园用户的管理,主要包括:查询校园用户的基本信息、删除校园用户信息、查询校园用户的交易记录等。
校园用户的主要功能有:
查看报亭的商品信息;个人信息管理,主要有:账户管理、信息查看、密码修改等;商品选择、购物车管理、结算等功能,可以批量也可以单独购买网站里的任何的商品,现场购物用户可直接刷校园卡结算。
2.2 数据库设计
校园报亭销售管理系统的数据库是通过MySql建立的,根据功能分析,理清了数据流向及实体之间的各种关键后,建立了管理员表、校园用户表、报亭商品表、购物车表、校园用户购买记录表。
首先,对于用户的管理方面,必须要有管理员信息表和用户信息表,将管理员用户和普通用户的信息都存在这些表内。同时商品信息也要单独存放。另外因为要实现用户可以同时购买多种商品,所以也添加了一张购物车信息表,用来保存购买过程中的信息,同时方便在后台中批量管理。最后还有一张用户购买记录表,这张表存放了用户的交易信息,方便查看用户的信息。
在这些数据表中,相互关联的主要有用户信息表字段、商品信息表字段和购物车信息表字段之间的有关联;用户信息表字段、商品信息表字段和用户购买记录表字段之间有关联,下面介绍部分关键的表。
1) 管理员信息表
管理员信息表,用来存储管理员账户的基本信息,包括管理员ID、姓名、密码、密码盐(为增强密码保密性,而创建管理员时随机生成的一串字符,与用户密码运算后保存在用户密码字段)、报亭ID,并留一个备用字段。管理员信息表的设计信息如表1所示。
2) 商品信息表
商品信息表主要是用来保存商品信息。其字段主要有:商品ID、商品名、商品图片的链接、商品单价、商品的详细说明、发布的时间、商品库存,并留两个备用字段作为将来的其他功能的使用。商品信息表的设计如表2所示。
3 一卡通第三方介绍
一卡通系统中,为统一数据格式,对持卡人所属部门做了定义:一卡通定义的持卡人的部门对应的代码,长度18个字节,下面是代码对应的意义:1~3:校区代码,4~6:一级部门代码,4~9:二级部门代码,4~12:三级部门代码,4~15:四级部门代码,4~18:五级部门代码。
为提高校园一卡通的安全性,除一卡通自身业务外,其它第三方的业务都是通过校园一卡通系统提供的第三方接口安全接入一卡通系统,下面简要介绍几个重要的接口:
3.1 第三方接入初始化函数
Bool TA_Init(string ServerIP , int PortNumber , int SysCode, int TerminalNo, boolean *ProxyOffline, long *MaxSno)
该接口的功能是实现第三方的业务系统初始化与第三方代理服务器的连接,其中:ServerIP表示第三方代理服务器的IP地址;PortNumber表示第三方代理服务器的端口号;SysCode表示一卡通系统给第三方业务系统分配的系统代码;TerminalNo表示第三方系统当前连接第三方的终端编号;出口参数ProxyOffline表示代理服务是否脱机;MaxSno表示当前第三方业务系统已有的最大流水号。返回True表示该接口调用成功,返回False表示接口调用失败。
3.2 跟读卡器操作相关的函数
1) int TA_CRInit(char CdReaderType,int ReaderPort,long BaudRate);
该接口的功能是实现读卡器的初始化,其中:CdReaderType表示读卡器类型,0表示接口为USB,1表示接口为串口,ReaderPort表示串口读卡器的串口号,0~1分别代表串口1~4;
BaudRate表示串口读卡器的波特率。返回0表示初始化读卡器成功,非0值表示读卡器初始化失败。
2) BOOL TA_CRClose();
该接口的功能是关闭当前会话中的读卡器,返回True表示关闭成功,False表示关闭失败。
3) int TA_FastGetCardNo(int *CardPhyNo); 该接口的功能用来快速轮询读取卡片内的物理序列号,通过出口参数记录当前读到的物理序列号,如果没有卡在上面则出口参数里面记录为-1。
通过该接口结合程序设计中的循环结构,可以轻松实现读卡器的无限轮询,让读卡器随时读取上面的卡片。
4) int TA_CRBeep(int BeepTime);
该接口的功能是用来启动读卡器的蜂鸣功能,通过该接口来提醒用户本次读卡已经完成,不表明读卡成功或失败,BeepTime表示读卡器蜂鸣的时间长度,单位为毫秒。
4 关键代码分析
代码设计对系统的安全性和性能都有着直接的影响,因此,代码设计也是整个设计中关键部分。数据库连接是系统具体实现与数据存储之间的桥梁,系统中的增、删、改、查都是基于这个桥梁,在系统的设计过程中,把数据库的四大基本操作都集成到一个模块中。具体代码如:
4.1 數据库连接代码,系统中所有的数据库操作都基于这个连接。
public ComDbOpt()
{ if( ds == null )
{ try
{ Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
ds = (DataSource) envContext.lookup("jdbc/mysql");// 这里根据配置更改 }
catch (Exception e)
{ System.err.println(e.getMessage()); }
}
}
4.2 数据库中数据的四大基本操作是最平常的,系统里通过一定的集成,将数据库的基本融合到一个函数里,其它地方需要时只需简单的调用
public boolean update() throws java.io.UnsupportedEncodingException
{ try {
if (query_statement.equals("")) return false;
if(IsConnClosed()) this.getConnection();
if (null == this.con) {
throw new NullPointerException("未获得数据连接");
}
PreparedStatement update_stm = con.prepareStatement(query_statement);
if (param != null) {
for (int i = 0; i < param.length; i ) {
update_stm.setString(i 1, param[i]); }
}
int rowsaffected = update_stm.executeUpdate();
update_stm.close();
this.param = null;
return true;
} catch (SQLException ex) {
System.out.println(ex.getMessage());
return false;
} catch (NamingException ex) {
System.out.println(ex.getMessage());
return false;
} finally {// 这里可以关闭,不会有错!
this.param = null;
try { this.con.close();
} catch (SQLException ex) {
System.out.println("数据连接关闭失败");
}
}
}
5 结束语
基于校园一卡通的报亭销售管理系统是根据软件开发的流程来设计和实现的,通过系统需求分析、系统设计来分析划分系统功能,并且以此为基础内容来设计并实现数据库。系统的投入使用,更加方便地实现同学们及时了解某个校园报亭的书籍、杂志、报纸、饮料等商品情况的需求,通过该系统可以在线下单并使用校园一卡通在线支付或者到报亭刷卡支付,提高了校园报亭的勤工助学同学的工作效率,同时对校园报亭的销售额的提升也做出了一定的贡献。