T技术 SCIENOE&TECHNOLOOY lNFORMATI! Q:ON! 基于JSP技术在线书店系统的后台设计 郑耀添 (广东韩山师范学院物理系) 摘要:本文是在线书店系统的后台设计,通过对数据库的设计、封装、连接和操作,体现在线书店系统后台服务的强大功能。 关键词:数据库表设计操作 中图分类号:TP3l1.52 文献标识码:A 引言:近几年,Internet迅速发展,电子商业成为Internet package test l 网络技术发展最快的领域之一。由于在线商店系统在Intetnet上 import java.sq1. l 需要高安全性和不同系统间的兼容性的特点,而目前热门的 //定义公共类faq ASP技术只应用于Windows NT/2000平台,但是JSP可以在 public class facl{ 85%以上的服务器上运行,而且JSP技术的应用程序比ASP的 String sDBDriver I 应用程序易于维护和管理。源干以上两种原因,通过采用JSP String sConnStr I 技术设计开发在线书店系统符合时代的潮流、具有积极的进步 //定义一个Connection对象corm,用于连接数据库 意义。 Connection corm I //定义一个ResultSet对象rs,用于接受查询结果集 1.数据库的设计 ResultSet rs I 1.1数据库的功能 sDBDriver=”sun。jdbc.odbc.JdbcOdbcDriver”; 数据库用于存储书店所有书籍、用户订单,管理员名称、 sConnStr=”jdbc:odbc:faq”; 管理员密码、用户流言和处理数据的场所。它把系统的用户注 corm=nullI 册、用户登陆、书籍查询、购书中心、用户中心、管理中心 rs=nulll 有机地结合起来,控制着整个网站的运行,是系统的纽带、系统的 //定义构造函数faq() 核心。 public faq(){ 1.2数据库的结构 //加载驱动程序sun.j dbc.odbc.JdbcOdbcDriver 本系统采用Microsoft Office自带的数据库工具Access 2003 try{Class.forName(sDBDriver)i} 来制作关系型数据库。在该数据库(数据库命名为faq)中包 catch(java.1ang.ClassNotFoundException e){ 含7张数据表(数据表后面的英文是数据表的命名,数据表的 System.err.print]n(”faq():”+e.getMessage0), 功能和设计在后面一一介绍),如图所示: } book表是用来存储系统中书籍的场所,相当干物理书店中 } 库存书的地方。goodsale表和newbook表分别用来存储最来畅 //定义公共方法executeQuery() 销的书和存放新书的地方,把最近畅销书和新书独自存放在一 public ResultSet executeQuery(String sq1){ 个数据表中,有利发布新书,有利于数据表的查询,大大提 rs=null‘ 高数据表的查询速度,提高数据库的效率。liuyan表是用来存 t { 储用户的留言容量,存储用户对系统的反馈意见。系统管理员可 //连接数据库 以通过用户的意见来改变系统版面、系统性能、库存书量、新 conn=DriverManager.getConnection(sConnStr)I 书数量等等的设计,满足广大用户不同程度的需求 member表 //新建Statemeng对象stmt 是用来记录用户注册的信息,这些信息放在一个表的目的是为 Statement stmt=corm.createStatement(); 了保护用户的信息不被他人侵犯。同时,也有利于管理员对系 //将查询的结果集返回给rs 统的维护和对用户的管理 manager表用来记录管理员的登陆 rs=stmt。executeQuery(scl1)I 名称和登陆密码,把这些内容单独放在一个表中,提高系统管 } 理的安全性I避免了用javascript的prompt函数连密码一起下 catch(SQLException ex){ 载到客户端浏览器存在安全威胁的缺点。orders表用来存储用 System.err.print]n(”aq.executeQuery:”+ex.getMessage 户的订单,系统管理可以处理所有订单,通过用户的订单可以 了解市场上书的畅销情况、系统各种书籍库存的数量和用户的 } 需求,从而可以根据不同情况制定不同的策略吸引更多顾客。 return rsI 1.3数据库的封装 } 利用Java面向对象程序语言的优势,使用JavaBeans技术 public void executeUpdate(String sq1){ 封装对数据库的操作。把对数据库的各种操作封装在Java包的 try{ 一个类中,提高对数据库操作的可重复性和安全性。下面是 corm=DriverManager.getConnection(sConnStr)} JavaBeans封装数据库的代码: Statement stmt=corm.createStatement()l //声明包test //更改新表 科技资讯SCIENCE&TECHN0L00Y INFORMATION 1 01 维普资讯 http://www.cqvip.com
SCIENCE&TECHNOLOOY INFORMATION T技术 得到结果中的下一条记录,进行查询操作之后,得到的 一strut.executeUlMate(sq1), ResultSet中的指针指向第一条记录之前的位置,因此先要调用 次next()方法使指针指向第一条记录 用whfle(RSa.next())循 catch(SQLException ex){ System.err.println(“aq.executeUpdate:”+ex.getMessage 环语句可以获取R S a保存的查询结果集中逐条记录的数据。 RSa.getString(),RSa.getlnt()lI ̄RSa.getFloat0用来得到当前 记录中的某一字段的值,分别返回String型、Int型和Float型。 当查询结果完毕后,及时用RSa.close()方法来关闭ResultSet释 放资源。 2.2数据库的插入 2.数据库的操作 网上冲浪者在本系统可以不受任何限制地浏览,但是,要从 数据库的操作是以关系数据库标准语言SQL为基础,SOL 本系统中订购书籍,则必须注册,登陆之后才能享受此服务。用 语言是访问数据库操作的核心。S Q L语言是一种非过程化语 户注册的数据必须插入到数据库中,系统才能辨认用户的具体信 } 言,它面向集合操作,集数据定义语言DDL、数据操纵语言 DML和数据控制语言DCL为一体。通过SQL语言可以对数据 库中的数据进行查询、修改、和删除,同时可以把数据插入 到数据库中。 2.1数据库的查询 通过对数据库的查询,可以轻松地获得数据库中的数据,从 而使客户端浏览器与服务器端数据库更加紧密的联系起来。在 本系统中,用到数据库查询的地方有多处,比如用户订单查 询,书籍信息查询,用户信息查询。下面是书籍信息查询的 代码: <% String name,auth0r,content,publish~name, publish—address,date} int language,commend,book—number,category l float price} String on~sale—time; boolean good—price,cdrom l String id} id=request.getParameter(”id”), NesultSet RSa=workM.executeQuery(SELECT FR0M book where id-”+id)1 while(RSa.next()){ name-RSa.getString(”name”)l author=RSa.getString(”author”)l 1anguage (Rsa.getlnt(” ̄nguage。 ))l content-RSa.getString(”content“)l category=(RSa.getInt(”category”)); commend-(RSa.getlnt(”commend”)){ publish—name=RSa.getString(”publish—name”)l publish address-RSa.getString(”publish—address”)I cdrom=(RSa.getBoolean(”cdrom”))l price=(RSa.getFloat(”price“))l omsale_time=RSa.getString(”on—sale—time”)l goodprice=(RSa.getBoolean(”good~price”)), booknumber=(RSa.getInt(”book—number”))} date-RSa.getString(”date”)l } RSa.close()} %> 在上面的代码中,ResultSet RSa=workM.executeQuery (SELECT十FROM book where id=”+id)l向数据库中的book 数据表发送SQL查询操作,将查询操作的结果保存在ResultSet 对象RSa中(RSa保存的是查询结果集)。RSa.nest()方法用来 l 02 科技资讯SCIENCE&TECHNOLOGY INFORMATION 息。 2.3数据表的更新 本系统数据库中对每本书的库存量都有准确的数字,但当某 本书被用户订购了一些后,该书的库存量在数据库中必须自动更 新,这样,系统管理员才能高效的维护和管理系统。 2。4数据库的删除 本系统数据库是存放系统后台数据的仓库,如果数据库中存 放过多无用数据(比如被处理过的订单放在数据库中就显得多 余,或有些书籍过旧而不利于放在数据库中),则增加容量,降 低数据库的效率;为了提高数据库的效率,则把数据库中的废记 录删除。 3.结束语 本文通过数据库设计和数据库操作两方面分别论述了系统后 台服务的功能——保证了数据的完整性,安全性和高效性。本系 统的数据库是在Microsoft Access ̄[1关系数据库标准语言SQL的 有机结合下,在相关网站数据库设计的理论指导下,遵循数据的 易用性、实用性和科学性的原则,开发出的关系式数据库。同时, 在设计过程中,还充分利用了Java面向对象程序设计语言的优 势,使用JavaBeans对数据库的操作进行有效地封装,减轻服务 器的负担,提高系统的性能。 参考文献 [1】求是科技编著,((Access 2002数据库开发技术与工程 实践 ,人民邮电出版社,2004年 [2】施威铭研究室编著,((Access 2002中文版标准教程》,中 国青年出版社,2002年 【3】飞思科技产品研发中心编著,((JSP应用开发详解》,电 子工业出版社,2002年 【4】王行言、俞盘祥、汤荷美等编著,((计算机信息管理基 础 ,高等教育出版社,2002年 【5】飞思科技产品研发中心编著, ̄Java2应用开发指南)),电 子工业出版社,2002
因篇幅问题不能全部显示,请点此查看更多更全内容