已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网上图书销售系统的设计与 实现 克拉玛依职业职业技术学院信息工程系计算机网络技术 指导老师:陈晓华 田娟 学 生:陈峰 曹曙炜 金川 穆凯黛斯 加勒努尔 徐磊 信息工程系 计网班 目 录 引言 .1 一 概述 1 二 系统分析 1 1 1 可行性分析可行性分析.1 2 2 需求分析需求分析2 三.概要设计 2 1.1.系统设计目标系统设计目标.2 2.2.系统设计思想系统设计思想.3 3.系统功能模块划分系统功能模块划分3 4.4.系统结构设计系统结构设计.5 5.5.系统功能简介系统功能简介.6 (1)(1)系统基本功能系统基本功能6 6.6.数据库设计数据库设计.7 (1)(1)数据库需求分析数据库需求分析7 (2)(2) 数据库概念结构设计数据库概念结构设计7 7.7.数据库逻辑结构设计数据库逻辑结构设计.9 四.详细设计 .12 1.1.开发技术简介开发技术简介.12 (1 1) JSPJSP 简介简介.12 (2 2 )JSPJSP 的运行原理的运行原理.12 (3 3 )JSPJSP 页面的组成页面的组成.13 (4)JavaBean(4)JavaBean 技术介绍技术介绍.14 (5)JSP(5)JSP 的运行环境的运行环境14 2.2.系统主要文件系统主要文件.15 3.3.详细设计及说明详细设计及说明.15 (2)(2)字符处理字符处理 BeanBean 的编写的编写17 信息工程系 计网班 (3(3) )实现图书分类实体实现图书分类实体 BeanBean.20 (4)(4)实现订单实体实现订单实体 BeanBean.21 (5)(5)实现订单列表的实现订单列表的 BeanBean.22 (6)(6)实现购物车实体的实现购物车实体的 BeanBean.23 (7)(7)管理用户登录管理用户登录 BeanBean 的编写的编写23 (8)(8)管理图书管理图书 BeanBean 的编写的编写25 (9)(9)管理图书分类管理图书分类 BeanBean.29 (10)(10)管理用户的管理用户的 BeanBean.30 (11)(11)管理订单的管理订单的 BeanBean.31 4.4.客户界面设计客户界面设计.35 (1)(1)界面头、界面尾设计界面头、界面尾设计35 (2)(2)用户登陆模块设计用户登陆模块设计35 (3)(3)在线购书功能模块设计在线购书功能模块设计37 (4)(4)我的购物车功能模块设计我的购物车功能模块设计37 (5)(5)订单信息功能模块设计订单信息功能模块设计42 5.5.管理界面设计管理界面设计.43 (1)(1)界面头、界面尾设计界面头、界面尾设计43 (2)(2)管理员登陆功能模块设计管理员登陆功能模块设计43 (4)(4)订单管理功能模块设计订单管理功能模块设计44 (5)(5)用户管理功能模块设计用户管理功能模块设计45 五五. .系统使用系统使用 .45 1.1.服务器的配置及环境的搭建服务器的配置及环境的搭建.45 2.2.进入前台进入前台.47 3.3.进入后台进入后台.47 六.总结 .47 致 谢 48 参考文献参考文献 48 信息工程系 计网班 第 1 页 共 50 页 引言 随着 Internet 国际互联网的发展,越来越多的企业开始建造自己的网站。基于 Internet 的信息服 务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅 能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态 商务网站。同时人们的生活方式也在随着发生改变,传统的购物方式已不能满足人们的需求。 JSP 是 Sun 公司推出的一种网站开发技术,Sun 公司借助自己在 Java 上的不凡造诣,又把人们 引进 JSP 时代,JSP 即 Java Server Page,它可以在 Servlet 和 JavaBean 的支持下,完成功能强大的 Web 应用程序。所以,在我的毕业设计中,我采用了 JSP 作为开发工具,构建了一个能实现基本的电 子商务的小型动态商务网站网上图书销售系统。该系统能实现用户的注册、登录功能;能够实现 商品的查询,订购等功能。该系统基本上具备一个网上商品销售系统应该具备的常用功能,该设计项 目基本上体现了构建一个动态商务网站所需要的技术,可以说,目前的大型商务网站也就是我们这 个小型网站在内容上的扩充和完善。 一 概述 随着时代的发展,信息技术、Internet/Intranet 技术、数据库技术的不断发展完善,网络进程的加 快,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业的 IT 部门已经认识到 Internet 的优势,电子商务就是在这样一个背景下产生发展起来的。伴随着电子商务技术的不断成熟, 电子商务的功能也越来越强大,注册用户可以在网上搜索购买到自己想要的各种商品,初步让人们 体会到了足不出户,便可随意购物的快感。我的课程设计也就正是一个电子商务系统的开发-网上图 书销售系统。 二 系统分析 1 1 可行性分析可行性分析 商业企业在运营过程中,经常会受到以下一些条件的限制: 产品的宣传受到限制,采购商或顾客只能通过上门咨询、电话沟通等方式进行各种信息的获取, 受一定的时间与物理空间的局限并且成本较高。 庞大的商业经济周转。 信息工程系 计网班 第 2 页 共 50 页 复杂的产品周转渠道。从看样品、谈价格到支付货款等一系列的产品周转渠道过于复杂,企业与 顾客之间缺乏全面的沟通与快捷运营的平台。 商业企业中根据季节的变化,热销商品在销售高峰到来时货源紧张,企业需要实时了解商品的 销售情况,保证热销商品的要货满足率。 因此,企业需要重新认识市场、消费者以及自身市场定位,正确认识电子商务技术在企业中的重 要地位,以少量的时间和资金建立企业信息门户网站并架设一定范围的商务网络,以此来制定长远 发展战略,使企业与顾客间的经济活动变得更灵活、更主动。 本系统是一个中小型的电子商务系统-网上书店,可以为各类用户提供方便的在线买书环境, 符合目前国内流行的电子商务模式。用户可以在系统中实现注册、浏览商品、搜索查询商品、下定单、 处理定单等功能;管理员可以通过用户管理、定单管理、商品管理、评论管理等管理功能来对系统进 行维护更新。 在技术上,目前市场上开发电子商务平台的技术很多,如 ASP,PHP,PB,.NET 等。我采用 SUN 公 司的 JSP 技术,它是目前市场上最流行的技术之一,JSP 具有一次编译,处处运行的优点4。 由分析可得,不论是商业还是技术上,网上图书销售系统的开发都是可行的。 2 2 需求分析需求分析 通过对电子商务网站及网上书店的考察、分析以及实际的市场调查,要求本系统具有以下功能: 统一友好的操作界面,能保证系统的易用性。 规范、完善的基础信息设置。 图书分类详尽,可按不同类别查看商品信息。 按图书大类及图书名称进行模糊查询。 实现网上购书。 新书及特价图书展示。 三.概要设计 1.1.系统设计目标系统设计目标 对于典型的数据库管理系统,尤其是对像电子商务这样的数据流量特别大的网络管理系统,必 须要满足使用方便、操作灵活等设计要求。本系统在设计时应该满足以下几个目标: 采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存 储安全可靠。 全面展示书店内所有的图书,并可展示最新图书及特价图书。 信息工程系 计网班 第 3 页 共 50 页 为顾客提供一个方便、快捷的图书信息查询功能。采用模糊查询查询数据。 实现网上购物。 商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策。 查看商城内的公告信息。 用户随时都可以查看自己的订单。 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。 系统最大限度地实现了易维护性和易操作性。 系统运行稳定、安全可靠。 2.2.系统设计思想系统设计思想 本系统采用三层架构设计4,它的工作原理如图 4.1 所示。 图 4.1 三层结构原理图 采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则 将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这 样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。 3.3.系统功能模块划分系统功能模块划分 根据需求分析及三层架构设计的思想,设计出客户系统功能如图 4.2 信息工程系 计网班 第 4 页 共 50 页 图 4.2 客户端系统 后台管理的系统功能图如图 4.3 用户登录 在线购书 查看购物车 在线购书 察看订单信息 察看图书详细 购买 图书查询 察看图书详细资料 购买 查看订单详细 继续购书 清空购物车 提交购物车 删除已经选购的图书 修改购买数量 购买 用户注册登陆 信息工程系 计网班 第 5 页 共 50 页 管理员登陆 用户管理 现有图书管理 添加新图书 添加图书分类 订单管理 用户管理 查看图书资料 修改图书资料 删除图书 添加新图书 添加图书分类 删除图书分类 查看订单详细资料 删除订单 查看用户资料 删除用户 查看用户详细资料 修改用户资料 图 4.3 后台管理系统功能图 4.4.系统结构设计系统结构设计 根据面向对象和三层结构设计的思想,可得出如图 4.4 所示的系统结构设计图。 信息工程系 计网班 第 6 页 共 50 页 在线书店 客户端界面管理端界面JavaBean数据库 在购书界面 图书管理模块 订单管理 图书管理 用户管理 购物车界面 定单信息管理 登陆/注册 添加图书模块 添加图书分类模 块 订单信息模块 客户管理模块 登陆模块 图书分类类 图书类 图书分类管理类 图书管理类 订单类 订单管理类 购物车类 购物车管理类 用户类 用户管理类 用户登录类 图 4.4 系统结构图 5.5.系统功能简介系统功能简介 (1)(1)系统基本功能系统基本功能 a.图书信息查询 该模块实现图书信息的分类显示,提供最新商品的推荐显示以及销售显示,便于引导购物取 向。此外,还提供依据图书名称或是编号等包含关键字实现快速搜索的功能并显示图书的有关 详细信息。 b.购物车管理 用于对每一个进入系统的用户所对应的购物车进行管理。将用户所选购的图书信息,包括价 格、数量等信息记录到对应的购物车上,便于到收银台进行结帐处理。同时在此模块中,用户还 可以方便的实现修改购物图书、清空购物车等操作。 b.会员信息管理 信息工程系 计网班 第 7 页 共 50 页 实现系统相关用户信息的注册及身份验证,同时也提供对应的用户资料的更新。该系统可以 收集用户相关的联系方式、通讯地址等信息,可以更好的拓展销售规模。 d.订单处理 根据购物车中的信息,以及用户所选择的送货方式和付款方式,和用户对应的个人信息生成订 单,便于后续工作的处理。在该模块中,用户可以随时查阅自己的订单,并对其进行取消等处理 操作。 6.6.数据库设计数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统 的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完 整和一致10。 (1)(1)数据库需求分析数据库需求分析 针对网上图书销售系统的需求分析,得出如下需求信息。 订单分为单张详细订单和总订单。 一个用户可以购买多本图书。 一个用户对应一张订单。 一个列表对应多张订单。 针对本系统功能分析,总结出如下的需求信息。 用户,包括数据项:用户 ID、用户名、密码。 图书,包括数据项:图书编号、图书名、价格、图书介绍。 订单列表,包括数据项:订单编号、图书编号、购书数量。 订单,包括数据项:订单编号、用户编号、下单时间。 (2)(2) 数据库概念结构设计数据库概念结构设计 从本系统中规划出的实体有:用户信息实体、管理员信息实体、图书实体、图书分类实体、订单 实体、订单列表实体。 实体之间关系的图如图 4.5 所示。 信息工程系 计网班 第 8 页 共 50 页 管理 员 用户购书订单列表订单 图书 图书分类 11 N N 1 1 图 4.5 实体之间的图 管理员实体的图,如图 4.6 所示。 图书分类实体的图,如图 4.7 所示。 用户信息实体的图,如图 4.8 所示。 图书实体的图,如图 4.9 所示。 订单实体的图,如图 4.10 所示。 订单列表实体的图,如图 4.11 所示。 管理员 用户名密码 图书分类 分类名称 分类编号 图 4.6 管理员实体的图 图 4.7 图书分类实体图 用 户 用户名 密码 地址 真名 性别 电话 邮编 Email 注册时间 注册 IP 图 4.8 用户实体图 M N 信息工程系 计网班 第 9 页 共 50 页 图 书 图书编号 图书名称分类编号 封面 作者 出版社 内容介绍 总数量 剩余数量 价格 图 4.9 图书实体图 订单 订单编号 用户编号 购买时间 总价格 内容 IP 地址 是否发货 是否付款 图 4.10 订单实体图 订单列表 购书数量 图书编号 用户号 订单号 图 4.11 订单列表实体的图 7.7.数据库逻辑结构设计数据库逻辑结构设计 本系统数据库采用 SQL Server 2000 数据库,系统数据库名称为 bookshop,下面分别给出数据 表概要说明、数据表关系概要说明及主要数据表的结构。 (1)(1)数据表概要说明数据表概要说明 数据表树型结构图如图 4.12 所示,该数据表树型结构图包含系统所有的数据表 信息工程系 计网班 第 10 页 共 50 页 图 4.12 数据表树型结构图 (2)(2)各个表的的结构如下表各个表的的结构如下表 表 4.1 为图书信息列表,记录书店现有的图书信息。 表 4.1 Book 表 列名数据类型长度允许空注释 IDInt 4图书编号 BookNamevarchar40否图书名称 BookClassInt4否图书分类 AuthorVarchar25是作者 PublishVarchar150是出版社 BookNoVarchar30是书号 Contenttext300是内容 Pricefloat8是价格 Amountint4是总数量 Leav_numberint4是剩余数量 RegTimedatatime8是注册时间 Picturevarchar60是封面 表 4.2 为书店管理员信息表,记录管理员的帐号和密码。 表 4.2 BookAdmin 表 列名数据类型长度允许空注释 AdminuserVarchar20否管理员 AdminPassVarchar20否管理员密码 表 4.3 为用户信息表,记录用户的基本信息。 表 4.3 用户表 列名数据类型长度允许空注释 IDInt 2否用户编号 信息工程系 计网班 第 11 页 共 50 页 UserNameVarchar50否用户名 passWordVarchar50否密码 NamesVarchar50否真名 SexVarchar50是性别 AddressVarchar50是地址 PhoneVarchar50是电话 PostVarchar50是邮编 EmailVarchar50是电子邮件 RegTimeDatatime50是注册时间 RegIPAddres s varchar50是注册 IP 地 址 表 4.4 为订单总表,记录某个用户的订单总信息。 表 4.4 订单总表 列名数据类型长度允许空注释 IDInt4 否总订单编号 OrderIDInt4否订单号 BookNoInt4否书号 Amountint4是数量 表 4.5 为订单表,记录但张订单的具体信息。 表 4.5 订单表 列名数据类型长度允许空注释 IDInt4否订单 ID OrderIDVarchar50否总订单 UserIdVarchar50否用户 ID SubmitTimeDatatime8是提交时间 ConsignmentTim e Datatime8是购买时间 TotalPriceFloat16是总价格 contentText300是描述 IpaddressVarchar50是Ip 地址 IspayoffVarchar50是是否付款 信息工程系 计网班 第 12 页 共 50 页 IsAddressvarchar20是是否发货 表 4.6 为图书分类表,记录书店现有图书的分类。 表 4.6 Bookclass 表 列名数据类型长度允许空注释 IDVarchar30否分类编号 ClassNamevarchar30否分类名 四.详细设计 1.1.开发技术简介开发技术简介 (1 1) JSPJSP 简介简介 JSP(Java Server Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态 网页技术标准,JSP 技术在 Servlet 技术基础上发展起来的,它正在飞速发展中,现已成为 Java 服务 器编程的重要组成部分。它虽然还未成型,但是它必将和 J2EE(Java 2 Enterprise Edition)一起发展6。 JSP 是结合 markup(HTML 和 XML)和 Java 代码来处理一种动态页面。每一页第一次被调用 时,通过 JSP 引擎自动被编译成 Servlet,然后被执行,以后每次调用时,执行编译过的 Servlet。JSP 提供了多种方式访问 Java class、Servlet、Applets 和 Web Server,因此,Web 应用的功能可以分成多 个明确定义公用接口的组件,通过 JSP 将它们结合在一起9。 (2 2 )JSPJSP 的运行原理的运行原理 在 JSP 第一次获得来自于客户端浏览器的请求时,JSP 文件将被 JSP 引擎(JSP engine)转换 成一个 Servlet,即将”.jsp”文件编译成 Java Class 文件。当 Servlet 引擎接收到请求后,如果设置了 使用最新的 JSP,它就会去找 JSP 文件,检查该文件在上次编译后是否改动过。如果改动过,就会重 新编译生成新的 Servlet,最终将请求转交给编译好的 Servlet 引擎执行1。如图 5.1 Client 客户端 请求(Request) Web Server 响应(Response) Server extension 服务器扩展 Servlet engine JSP engineServlet 引擎 JSP 引擎 Class loader Java complier JSP parser 类载入器 Java 编译器 JSP 语法分析器 信息工程系 计网班 第 13 页 共 50 页 图 5.1 JSP 运行原理图 在编译时如果发现 JSP 文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译 成功,则所转换产生的 Servlet 代码被编译,然后该 Servlet 被 JSP 引擎加载到内存中。此时 JSP 引擎 还请求了 jspInit()方法的执行,并对此 Servlet 初始化。JspInit()方法在 Servlet 的生命周期中只被请求 一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该 JSP 文件的请求,服务器将 检查该 JSP 文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的 Servlet 的 jspService()方法,执行回复操作。由于 Servlet 始终驻于内存,所以响应是非常快的。Jsp 页 面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编 译成字节码文件了,所以速度非常得快。 (3 3 )JSPJSP 页面的组成页面的组成 JSP 页面看上去像标准的 HTML 和 XML 页面,并附带有 JSP 引擎能够处理和解析执行的代 码与组件。通常,JSP 代码和组件用于创建在最终页面上显示的文本。通常来说,JSP 页面包括模板元 素,指令元素,动作元素,Scritptlets,声明,表达式和 JSP 内建对象。 a.模板元素:模板元素是指 JSP 的静态 HTML 或者 XML4 。 b.指令元素:使用指令元素来设置全局变量,声明类、要实现的方法和输出内容的内型,它们 并不向客户端产生任何输出,所有指令在文件范围内有效,JSP 指令的一般语法形式为: 信息工程系 计网班 第 14 页 共 50 页 。 c.动作元素(标识):动作元素用于执行某些动作。在 JSP 规范中有 2 种类型的动作指令的标识。 第一种是标准动作,它定义的是无论在什么版本的 JSP 引擎或 Web 服务器下总是可用的动作。第二 种是自定义动作,它通过使用 taglib 指令来实现。例如 JSP:useBean;JSP:setProperty;JSP:getProperty 就是标准动作。 d.声明:用于声明合法的变量和方法。与任何语言相同,JSP 语言使用变量来保存数据。这些变 量用 declaration 元素声明,声明的语法为。当页面被初始化的时候,JSP 页面中 的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。 e.表达式:通过计算表达式所得到的结果来表示某个值。表达式的形式为:。表 达式求值的结果被强制转换为一个字符串,并插入到当前的输出流中。 f.程序段:JSP 可以在页面中包含的一段程序,称之为程序段。程序段是一个代码片断,在请求的 处理过程中被执行。程序段可以和页面中的静态元件组合起来创建动态生成的页面。程序段在“”中定义,在这对标识中的所有东西都会被当成 JSP 程序执行。 (4)JavaBean(4)JavaBean 技术介绍技术介绍 JavaBean 技术是一种基于 Java 的组件技术,JavaBean 组件可以用来执行复杂的计算任务, 或负责与数据库的交互以及数据的提取,以及封装事务逻辑等,可以很好的实现业务逻辑和前台程 序的分离使得系统具有更好的健壮性和灵活性,同时也是解决代码重用问题的一种策略。 以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语 言的依赖过重。由于 Java 语言在这些方面所具有的特点和优势,使得基于它的软件 JavaBean 组件技 术倍受人们的关注。它的任务就是:一次编写,可以在任何地方执行, 可以在任何地方重用。JavaBean 组件可以在任何地方冲用包括了可以在应用程序、其他组件、 文档、Web 站点和应用程序构造器工具等多种方案中再利用。 为了创建和使用 Java 软件组件,JavaBean 被实现为一种独立于平台和结构的应用程序接口, 它的实现可以忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、 方法和事件三种接口可以独立对外进行开发。 JavaBean 的实质就是一个.class 文件,也可以成为类文件。JavaBean 以 binary 格式保存,可以保护 Java 源代码不容易被他人抄袭7。 (5)JSP(5)JSP 的运行环境的运行环境 要运行 Jsp(注意,不是浏览 Jsp 页面),需要有支持 Jsp 的服务器。这里分 2 种情况:一种是自身 就支持 Jsp 的服务器,如 Jrun,Weblogic,JSWDK 等;而另一种则是在不支持 Jsp 的服务器上安装 Jsp 引擎的插件,如在 IIS,Apache 等服务器上安装 WebSphere,tomcat,Resin 等插件。其中主流服务器是 信息工程系 计网班 第 15 页 共 50 页 Weblogic 和 tomcat. Weblogic 是一款功能强大的服务器软件,配置比较简单,而且 Jsp 的扩展功能较多,附带了数据库 的 JDBC 驱动程序。 ,支持 JHTML(一种与 Jsp 十分相似的技术),是目前市场占有率最高的服务器。不 过,Weblogic 的运行情况不太稳定,使用它调试 Jsp 文件,出现语法错误或者数据库连接错误时, Weblogic 就有可能崩溃。 Tomcat 服务器是 Apache Group Jakarta 小组开发的一个免费服务器软件,适合于嵌入 Apache 中使用, 而且,它的源代码可以免费获得,你可以自由地对它进行扩充。访问的地址 http:/jakarta. /tomacat/index.html, Tomcat 服务器的兼容性很好,如 WebLogic 服务器采用其为 Web 服 务器引擎,Jbuilder 将其作为标准的测试服务器,Sun 公司也将其作为 JSP 技术应用的示例服务器。 不足之处是它的配置比较麻烦,对系统硬件要求较高,而且有一些安全性的问题没有解决。但是 Tomcat 服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好9。 2.2.系统主要文件系统主要文件 该购书系统主要有 2 类文件,一类是 Bean 文件,我把它们统一放在了 bookshop 文件夹里,保存 在 jakarta-tomcat-5.0.27commonclassesbookshop 下, (这是 tomcat 要求的默认存放 Bean 的路径),在 bookshop 文件夹下又有 3 个包:book,run,util,对 Bean 文件的一个分类;另一类是 jsp 文件,保存在 jakarta-tomcat-5.0.27webappsROOT。 (这是 tomcat 的默认工作环境) Book 包中的 Bean 文件:Allorder.java,Book.java,Bookclass.java,Order.java,Shopcar.java,User.java Util 包中的 Bean 文件:ChStr.java,DataBase.java,DataFormat.java Run 包中的 Bean 文件 Login.java, Op_book.java,Op_bookclass.java,Op_buy.java,Op_user.java Jsp 文件分为前台文件和后台文件,因文件太多,在此就不列举。 3.3.详细设计及说明详细设计及说明 (1(1) )数据库连接数据库连接 BeanBean 的编写的编写2 2 数据库操作的 JavaBean 是一个公共类,放在 bookshop 下的 util 包中,通常包括连接数据库的 方法 getConnection、执行查询语句的方法 executeQuery、执行更新操作的方法 executeUpdate、关闭数 据库连接的方法 close。其实现代码如下: package bookshop.util; /将该类保存到 package bookshop.util 包中 /* * 数据库连接专用包 * Copyright: wxy Copyright (c) 2007 信息工程系 计网班 第 16 页 共 50 页 * Company:Ling Du book shop online */ import java.sql.*; /导入提供基本的数据库编程服务的包 public class DataBase public Connection conn; /定义一个 Connection 对象 public Statement stmt; /定义一个 Statement 对象 public ResultSet rs=null; /定义一个 ResultSet 对象 public String sqlStr=“; /定义一个字符串,用来保存 SQL 语句 public DataBase() this.connect(); public boolean connect() /download by / tryClass.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“).newInstance(); /加载 SQL Server 2000 数据库驱动 String url =“jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=bookshop“; /保存连接数据库的 URL 地址的变量 conn=DriverManager.getConnection(url,”sa”,” ”);/建立数据库连接 Statement stmt= conn.createStatement (); catch(Exception ee) System.out.println(“connect db error:“+ee.getMessage(); /检测数据库连接是否成功 return false; return true; public static void main(String args) try DataBase db = new DataBase(); db.connect(); catch(Exception e) 信息工程系 计网班 第 17 页 共 50 页 e.printStackTrace(); (2)(2)字符处理字符处理 BeanBean 的编写的编写 在 JSP 开发中经常会涉及有关字符串的处理,例如:把字符串转换成适合于网页显示的文本、 八字符串转换成适合 SQL 语句的字符串等等,所以把这些字符串处理方法集中到一个类中。这也是 一个公共类3。 关键代码如下: package bookshop.util; /* * 负责字符串的处理 */ import java.lang.*; import java.util.*; public class dataFormat public dataFormat() /* * 把字符串转换成适合于网页显示的文本 * param s * return */ public static String toHtml(String s) if (s=null) return s; s=strReplace(s,“); s=strReplace(s,“,“); s=strReplace(s,“,“); s=parseReturn(s,“n “); return s; 信息工程系 计网班 第 18 页 共 50 页 /* * 把字符串sBody中的sFrom用sTo替换 * param sBody * param sFrom * param sTo * return */ public static String strReplace(String sBody, String sFrom, String sTo) int i,j,k,l; if (sBody=null | sBody.equals(“) return “; i = 0; j = sFrom.length(); k = sTo.length(); StringBuffer sss = new StringBuffer(sBody.length(); boolean bFirst=true; l = i; while (sBody.indexOf(sFrom,i)!=-1) i = sBody.indexOf(sFrom,i); sss.append(sBody.substring(l,i); sss.append(sTo); i += j; l = i; sss.append(sBody.substring(l); return sss.toString(); /* * 把字符串中的“rn“转换成“n“ * param String sBody : 要进行替换操作的字符串 * param String sEndwith : 要替换成为的字符串 信息工程系 计网班 第 19 页 共 50 页 */ public static String parseReturn(String sBody, String sEndwith) StringTokenizer t = new StringTokenizer(sBody, “rn“); StringBuffer sss = new StringBuffer(sBody.length(); boolean bFirst=true; if (sEndwith.trim().equals(“) sEndwith=“n“; while (t.hasMoreTokens() String s=t.nextToken(); s=s.trim(); while (s.startsWith(“ “) s=s.substring(2); if (!s.equals(“) if (bFirst) bFirst=false; else sss.append(sEndwith); sss.append(s); return sss.toString(); /* * 将字符串格式化成 HTML 代码输出 * 只转换特殊字符,适合于 HTML 中的表单区域 * param str 要格式化的字符串 * return 格式化后的字符串 */ public static String toHtmlInput(String str) if (str = null) return null; String html = new String(str); html = strReplace(html, “); 信息工程系 计网班 第 20 页 共 50 页 html = strReplace(html, “, “); return html; /* * 将普通字符串格式化成数据库认可的字符串格式 * * param str 要格式化的字符串 * return 合法的数据库字符串 */ public static String toSql(String str) String sql = new String(str); return strReplace(sql, “, “); (3(3) )实现图书分类实体实现图书分类实体 BeanBean 这个类是对图书分类实体的抽象,他包含了图书分类实体的所有属性及图书分类对象的初始化 构造方法,它的属性和表Bookclass对应,部分代码如下: package bookshop.book; /* * 图书分类类 */ public class bookclass private int Id;/ID序列号 private String ClassName;/图书类别 public bookclass() Id = 0; ClassName = “; public bookclass(int newId, String newname) Id = newId; 信息工程系 计网班 第 21 页 共 50 页 ClassName = newname; (4)(4)实现订单实体实现订单实体 BeanBean 这个类是对订单实体的抽象,它包含了订单实体的所有属性及订单对象的初始化构造方法。客 户每次购买一种商品都会产生一次订购单,它包括订单号,所购买的书号,所购买这种书的数量等, 这些构成了这个类的私有属性,这些属性和表Order对应。核心代码如下: package bookshop.book; /* * 订单类 */ public class order private long Id;/ID序列号 private String orderId; /订单编号 private long UserId;/用户序列号 private String SubmitTime;/提交订单时间 private String ConsignmentTime; /交货时间 private float TotalPrice;/总金额 private String content; /用户备注 private String IPAddress;/下单时IP private boolean IsPayoff;/用户是否已付款 private boolean IsSales;/是否已发货 public order() /在构造方法里初始化变量 Id = 0; orderId = “; UserId = 0; SubmitTime = “; ConsignmentTime = “; TotalPrice = 0; content = “; IPAddress = “; 信息工程系 计网班 第 22 页 共 50 页 IsPayoff = false; IsSales = false; public long getId() return Id; 其中的 seter 和 geter 方法用来设置和获取以上各属性的值。在 jsp 页面中通过 引入。 (5)(5)实现订单列表的实现订单列表的 BeanBean 这个类是对订单列表实体的抽象,它包含了订单实体的所有属性及订单列表对象的初始化构 造方法,它的属性和表 Allorders 对应,部分代码如下: package bookshop.book; /* * Title: */ public class allorder private long Id;/ID序列号 private long orderId;/订单号表序列号 private long BookNo;/图书表序列号 private int Amount;/订货数量 public allorder() Id = 0; orderId = 0; BookNo = 0; Amount = 0; public long getId() return Id; 信息工程系 计网班 第 23 页 共 50 页 其中的 seter 和 geter 方法用来设置和获取以上各属性的值。在 jsp 页面中通过 引入。 (6)(6)实现购物车实体的实现购物车实体的 BeanBean 在现实生活中,人们去超市买东西,都是把商品放在一个购物篮里,等到把所有要买的东西选 购完毕后,一起拿到收银台前付钱。我在程序里定义的购物车实体就是模拟这个功能.作为购物车, 购物时间,所购书的总价格都是必不可少的,这个类是对购物车实体的抽象,它包含了购物车的所有 属性及购物车对象的初始化构造方法。部分代码如下: package bookshop.book; /* * Title: */ public class shopcar private long bookId;/图书ID编号 private int quanlity;/选购数量 public shopcar() bookId = 0; quanlity = 0; public long getBookId() return bookId; (7)(7)管理用户登录管理用户登录 BeanBean 的编写的编写 这是一个以客户为中心的交易平台,只有成为了系统的合法用户才有使用本系统的权利,因此 需要检测每个用户的合法性,管理用户登录这个 Bean:Login.java 就是要完成这一功能。图 5.2 为 Login 类的类图其中只是关键的几个方法。 信息工程系 计网班 第 24 页 共 50 页 Login Execute():boolean getIsadmin():boolean getSql():String Login():void Isadmin:boolean Passwd:String userId:long userName:String 图 5.2 从图 4-1 中可以看出 Login 具有的属性和方法,其中 login() :void 构造函数,getismin 为取得属性 isadmin 的值的方法,即判断登陆用户是否是管理员。其它的是设置和获取属性的方法。其中有两个 重要的方法介绍如下: 1 getSql()方法 根据用户的不同获得不同的查询 SQL 语句。判断登陆用户是否是管理员,如果是则从管理员信息表 中查询数据,否则则从普通用户表中查询数据。实现代码如下: /* * 获得查询用户信息的 sql 语句 * return */ public String getSql() if (isadmin) sqlStr = “select * from BookAdmin where adminuser = “ + dataFormat.toSql(username) + “ and adminpass = “ + dataFormat.toSql(passwd) + “; else sqlStr = “select * from shop_user where username = “ + username + “ and password = “ + passwd + “; return sqlStr; 2)Execute()方法 信息工程系 计网班 第 25 页 共 50 页 /* * 执行查询 * return * throws java.lang.Exception */ public boolean excute() throws Exception boolean flag = false; DataBase db = new DataBase(); db.connect(); /获取一个数据库连接 Statement stmt = db.conn.createStatement (); rs = stmt.executeQuery(getSql(); /rs 里返回查询结果集 if (rs.next() if (!isadmin) userid = rs.getLong(“id“); flag = true; rs.close(); return flag; 从以上代码中可以看出,构造数据库连接 DataBase 类的对象,调用其 connect()方法获得连接,调用 getsql()方法获得 SQL 语句,然后从数据库中查得用户所需信息。 (8)(8)管理图书管理图书 BeanBean 的编写的编写 该类负责图书的管理,包括图书的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年新能源发电设备自动化装置项目成效分析报告
- 2024年超铀元素及其提取设备项目综合评估报告
- 2024年装在进口飞机上的国产零备件和材料项目评价分析报告
- 质量培训35环宇抽样检验培训教材
- 2024届河北省唐山市唐县第一中学高三5月学生学业能力调研考试数学试题
- 构建幼儿园大阅读体系的实践研究 研究计划+实施阶段+结题报告
- 采购合同中的处罚条款
- 编撰物流合同执行统计表
- 山东省枣庄市台儿庄区2024-2025学年七年级上学期期中考试语文试题
- 辽宁省丹东市七校协作体2024-2025学年高一上学期11月期中生物试题
- 第45届世界技能大赛焊接项目全国选拔赛技术工作文件
- 药品经营使用和质量监督管理办法2024年宣贯培训课件
- 《老年人生活照护》试卷B卷及答案
- 课程设计几种排序算法
- 2024-2025学年六年级科学上册第二单元《地球的运动》测试卷(教科版)
- 《ISO 55013-2024 资产管理-数据资产管理指南》解读和实施指导材料(雷泽佳编制-2024)
- 国家开放大学《合同法》章节测试参考答案
- 自然资源调查监测技能竞赛理论考试题库大全-上(单选题)
- 人民民主是全过程民主
- 土木工程生涯发展展示
- 小学一二三年级劳动与技术《整理书包》课件
评论
0/150
提交评论