在线书店系统的建立及其数据库连接功能的实现.docx_第1页
在线书店系统的建立及其数据库连接功能的实现.docx_第2页
在线书店系统的建立及其数据库连接功能的实现.docx_第3页
在线书店系统的建立及其数据库连接功能的实现.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 26 卷第 4 期Vol126 No14长春师范学院学报 (自然科学版)Journal of Changchun Normal University(Natural Science)2007 年 8 月Aug. 2007在线书店系统的建立及其数据库连接功能的实现晏愈光 , 李民 , 邢鹏飞(长春师范学院信息技术学院 , 吉林长春130032) 摘 要 本文主要讨论了如何建立在线书店系统以及如何实现对此系统的数据库连接 , 介绍了 J SP +ORACL E 的开发模式 。系统采用 TOMCAT 作为 WEB 服务器 , J SP 负责网页的界面显示 , 后台使用 ORA2CL E 数据库来存储系统运行所需要的基础数据 。 关键词 J SP + ORACL E 架构模式 ; 中图分类号 TP3931092 , TP392TOMCAT ; SQL ; ORACL E 文献标识码 A 文章编号 1008 - 178X(2007) 04 - 01062051在线书店系统的功能描述本系统角色分为两类 : (1) 图书管理员 : 负责管理图书 、订单 、用户等 ; (2) 注册用户 : 在线购物 、管 理购物车 、查看订单等 。这两类用户分别拥有自己的操作功能 。我们根据操作划分模块 , 每一个操作模块都要实现自己的功能 , 并且在整个操作流程中负责承上启下 。根据这两个方面的需要 , 下面分别描述了各个模 块要实现的功能 :111图书管理员模块 : 包括管理员登录模块和管理员管理模块 管理员登录模块的主要功能是用于系统初始化部分的图书管理员用户 , 这些管理员能够通过该入口进入后台进行管理操作 。管理员管理模块是整个系统最重要的部分 , 又划分为图书管理模块 , 用户订单管理模块 , 用户管理模 块 , 分别实现了管理员对图书 、订单 、用户的管理功能 :图书管理模块首先要求的功能就是能够添加图书 。图书的分类在系统初始化时 , 添加图书包含的信息 有 : 图书名 、作者 、出版社 、书号 、定价 、总数量 、图书简介 、图书类别 。管理员可以有一个界面查看所有 的图书 , 对已经添加的图书可以修改属性 , 也可以删除不想保留的图书 。订单管理模块实现了管理员查看和修改注册用户下达的所有订单的功能 。订单的信息包括 : 订单编号 、用户名 、下单时间 、交货时间 、总金额 、订货人 IP 、付款状态 、发货状态 。管理员可以删除某一个订单 ,也可以修改某一个订单的付款状态 (未付 , 已付) 或发货状态 。用户管理模块实现了管理员查看所有注册用户和修改用户信息的功能 。用户的信息包括 : 登录用户名 、密码 、真实姓名 、性别 、联系地址 、联系邮编 、联系电话 、电子邮件 。管理员可以删除某一个用户 , 也可以修改某一个用户的基本信息 。112注册用户模块 : 包括用户注册 、用户登录 、用户购物和用户管理四个模块 用户注册模块实现了用户注册的功能 。凡网络用户均能注册 , 用户信息包括 : 登录用户名 、密码 、确认密码 (用户两次输入的密码要一样) 、真实姓名 、性别 、联系地址 、联系邮编 、联系电话 、电子邮件 。用户 名不能重复 。用户登录模块实现了系统注册用户使用自己注册的用户名登录系统 、进行购物 、管理购物车 、查看订单 等操作以及修改一些个人基本信息的功能 。 收稿日期 2007 - 03 - 15 作者简介 晏愈光 (1981 - ) , 男 , 吉林长春人 , 长春师范学院信息技术学院助教 , 从事数据库及计算机网络研究 。用户在线购物模块实现了用户在书店查看 、选择 、购买图书 , 以及填写购买数量的功能 。用户管理模块包括用户对购物车的管理和对订单的管理两个小模块 。 管理购物车模块实现了用户查看自己已经选购的图书和数量 、金额 , 修改某一本书的购买数量 ,消某一本已选的图书的功能 。并可以继续购物 , 可以清空购物车 , 可以提交购物车下达订单 。在下时 , 填写个人说明文字 。订单管理模块实现了用户可看自己下达的所有订单 ,订单的图书列表的功能 。 整个模块的关系图如图 1 所示 :查看订单的付款状态 ,发货状态 ,以及查看图 12在线书店的工作原理用户通过操作界面通过书店给出的图书 ID 来查询需要购买的图书 , 系统通过 J avaBean 组织 SQL询数据库 , 调出用户需要了解的信息 。用户在查看完图书信息后 , 返回要购买的图书对象及图书信息再通过 J avaBean 来返回结果 ,数据库对返回的结果作进一步处理 ,其工作原理如图 2 所示 。图 2 工作原理图3创建数据库在数据库管理系统中要建立六张数据表 :(1)(2) (3) (4) (5)(6)管理员表 (My BookAdminuser) : 用于存放初始管理员用户的数据记录(My Users) : 用于存放注册用户的记录注册用户表图书类别表 图书信息表(My BookClass) : 用于用户存放图书的记录(My Book) : 用于存放初始的图书类别记录用户 - 订单表 (My Indent) : 用于用户存放用户下达的订单基本信息订单 - 图书表 (My IndentList) : 用于存放订单的图书信息4创建表的脚本文件根据数据库字段设计 , 编写的创建数据库表的 SQL 语句如下 :管理员表 :drop table My BookAdminuser ;丢弃掉已建立的 My BookAdminuser 表(create table My BookAdminuser商店管理员表管理员用户名管理员密码AdminUser varchar2 (20) ,AdminPass varchar2 (20) ;insert into My BookAdminuser初始化管理员用户values (admin,nimda) ;注册用户表 、图书类别表 、图书信息表 、用户 - 订单表 、订单 - 图书表的创建方法和管理员表雷同 。需 要说明的是 , 在注册用户表中 , 需要设定 Id 为主键 , 并建立 MY Users 的主键自增值 ; 图书类别表中 , 需要设定 Id 为主键 , 并建立 My Book 的主键自增值 ; 在用户 - 订单表中 , 需要设定 Id 为主键 , 并建立 My- In2dent 的主键自增值 ; 在订单 - 图书表中 , 需要设定 Id 为主键 , 并建立 My IndentList 的主键自增值 。代码如下 :alter table My Users设定 Id 为主键值add primary key ( Id) ;create sequence UserId minvalue 1maxvalue 10000000 ;5在线书店数据库连接功能的实现建立 My- Users 的主键自增值 ( sequence)系统采用数据库连接池进行数据库的统一管理 , 同时在数据库操作上进行了封装 , 方便程序的开发与数据库的交互 , 主要有如下两个方面 :511数据库连接池在实现某一个功能时 , 首先要连接数据库 。那么 , 如果在每一次进行数据库操作前都需要加载驱动 , 创 建连接 , 那么连接的入口参数处理将十分零散 , 不好管理和维护 , 一旦系统移植 , 数据库参数改变 , 则需要 重新修改所有的连接代码 , 然后重新编译 。这项工作很复杂 , 但不是必要的 , 是可以省去的 。所以采用了如 下代码的一个类统一管理数据库的连接 :Public class BDConnectionManagerPrivate string driverName = ”org. gjt . mm. mysql . Driver”; Private string url =“jdbc :mysql :localhos :3306book ? userUnicode = ture &characterEncoding = GB K”;jdbc :odbc 连接语句private string user =“root”;private string password =“”;所连接数据库的名字和密码pubilc void setDriverName ( String newDriverName) driverName = newDriverName ;驱动名public void setUrl ( String newUrl) url = newUrl ;Public void setUser ( String newUser) User = newUser ;新建 USER ,用于数据库连接Pubilc void setpassword ( String newPassword) tryClass. forName ( driverName) ;Return DriverManager . getConnection ( url ,user ,password) ;catch ( Exception e) e . printStackTrace () ;处理错误的驱动异常return null ;在 DBConnectionManager 类中 , 有四个参数 : 数据库的驱动 , 连接地址 ,用户名 , 密码 。这四个参个系统中只有一个入口 。这样 , 在数据库移植或系统环境改变时 , 只须修改这一个地方就可以了 ,便 。512数据库封装在每一次需要进行数据库的操作时 , 只需要调用对应的 JDBC 的函数就可以了 。在实际开发中 ,用 JDBC 函数将使代码的编写工作十分烦琐 。为了提高编写代码的效率封装了如下的数据库操作的类Public class DataBase Connection 借口Statement 借口记录结果集Protected Connection conn = null ;Protected Statement stmt = null ; Protected ResultSet rs = null ;Protected PreparedStatement prep stmt = null ;PreparedStatement 借口sql String与数据库连接标识Protected String sqlStr ;Protected boolean isConnect = true ;Public DataBase () TrysqlStr =“”;DBConnectionManager dcm = new DBConnectionManager () ;conn = dcm. getConnection () ;stmt = conn. createStatement () ;catch ( Exception e) System. out . println (e) ;isConnect = false ;异常处理Public Statement getStatement () return stmt ; Public Connection getConnection () return conn ;Public PreparedStatement getPreparedStatement () return prep stmt ; Public ResultSet getResultSet () return rs ;Public String getsql () return sqlStr ;获得借口数据Public boolean excute () throws Exception return false ; Public boolean insert () throws Exception return false ; Public boolean update () throws Exception return false ; Public boolean delete () throws Exception return false ; Public boolean query () throws Exception return false ;抛出错误异常Public void close () throws SQL Exception If ( stmt ! = null ) Stmt . close () ; Stmt = null ;conn. close () ;conn = null ; ;DataBase 类封装了数据库操作的基本函数 ,将它作为 J avaBean 的父类 ,可以便于统一管理 。该类的一个重 要作用是 ,从连接池里取得一个连接 ,在使用结束时关闭连接 。统一地处理这些额外的工作和异常情况 ,可以 在编写 J avaBean 时将重点放在业务逻辑上 。在整个数据库设计完成后 ,就要把整个数据库和前台的 J SP 页面连接起来 ,才能使用整个网站系统 。通过 以上的设置及连接 ,可以运行代码 ,实现购物系统的功能 ,包括用户在购物界面的注册 ,登录 ,查看图书信息展 示 ,选购图书 ,查看并修改购物车和订单信息 ,然后提交订单 ,保持在线书店系统的顺畅运行 。调用 close 方法Esta bl ishm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论