搜档网
当前位置:搜档网 › h9yhesrs

h9yhesrs

目录

中文摘要 (2)

外文摘要 (2)

中文关键词 (2)

英文关键词 (2)

1 选题背景 (4)

2 程序开发的基础技术 (5)

2.1 HTML语言 (5)

2.2 JavaSCRIPT语言 (6)

2.3 JSP概述 (6)

2.4 JSP工作原理 (7)

2.5 JSP的发布 (8)

2.6 SQL语言简单介绍 (8)

2.7 JDBC技术介绍 (9)

3 需求分析 (9)

3.1系统说明 (9)

3.2 可行性分析 (10)

3.3 系统功能简介 (10)

3.3.1 基本功能 (10)

3.3.2 用户界面设计 (11)

3.4 系统运行环境 (11)

4 系统设计 (12)

4.1 系统设计思想 (12)

4.2 系统功能模块化 (12)

4.3 数据库设计 (13)

4.3.1 数据库需求分析 (13)

4.3.2 数据库概念结构 (14)

4.3.3 数据库逻辑机构设计 (15)

5 详细设计 (16)

5.1 系统概述 (16)

5.3 系统主要文件 (17)

5.3 详细代码及说明 (17)

5.3.1实现用户实体的Bean (18)

5.3.2实现图书实体的Bean (20)

5.3.3 实现订购单实体的Bean (22)

5.3.4 实现购物车实体的Bean (23)

5.3.5 实现购物实体的Bean (24)

5.3.6 前台运行程序cart.jsp (29)

6 总结 (35)

基于JSP技术的网上书店

According To The Technical On-Line Book-Shopping

System Of JSP

学生:0000科技学院

指导老师:汪静经济与管理学院

【摘要】网上书店的建设实现了对商业零售企业提供信息化管理。建立了企业对消费者(B2C)的网络销售系统。着重论述了系统功能与实现,数据流程及存储,包括图书目录,用户注册,网上订货与购物,图书查询,后台数据库管理等。运用HTML语言,JavaScript技术,JDBC,JSP与后台数据库MY SQL 链接等关键技术建设网上购物系统。本系统具有比较完善的后台管理系统和前台购物系统,后台管理系统使用者为系统管理员,主要完成:公告管理,图书管理,订单管理,用户管理,系统管理功能。前台购物系统使用者为顾客用户,主要完成:浏览公告,浏览图书,查询图书,购买图书,用户注册功能。本系统唯一不足之处在受网上银行的限制,无法完善在线付费系统。

【Abstract】The construction of the on-line shopping system carries out to retail the business enterprise to provide the information-based management to the business. Built up the business enterprise to the network sale system of the consumer (B2C).Emphasized to discuss the system function and realizations, the data process and saving, include the catalogue, the customer register, ordering on the net with shopping, merchandise search, the backstage database management etc.. Make use of the language of HTML, technique of JavaScript, JDBC, the JSP and backstage database chains connect to wait the on-line shopping system of the key technique construction. This system has the more perfect backstage management system and the stage shopping systems, the backstage management system user is a system managing person, mainly complete: Announce the management, the merchandise management, order management, customer management, system management function. The stage shopping system user is the customer customer , mainly completing: Browse to announce, browse the merchandise, search the merchandise, purchase the merchandise, the customer registers the function. Unique shortage of this system of be placed in to be limit by the on-line bank, can't be perfect and on-line to pay the system.

【关键词】B2C ,JSP,数据库, JDBC

【Key Words】Business to Customer , JAVA Sever Pages , Database , JDBC

前言

近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。

网上书店作为B2C (Business to Customer,即企业对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信是指那些不经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如图书报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。

现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划。每一个细小的环节都和重要。这样才能使得在电子交易时避免不必要错误发生。我们将使用HTML、JSP等技术来编辑网页,并运用JSP技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本系统在实际应用开发中解决方案是建立网站, 以及自己的数据库,使得所需图书信息可以及时的保存、更新。可以更好的及时了解图书买卖的情况。JSP是Sun公司推出的一种网站开发技术,Sun公司借助自己在Java上的不凡造诣,又把人们引进JSP时代,JSP即Java Server Page,它可以在Servlet和JavaBean的支持下,完成功能强大的Web应用程序。所以,在我的课程设计中,我采用了JSP作为开发工具,构建了一个能实现简单的电子商务的小型动态商务网站——网上书店销售系统。该系统能实现用户的注册、登录功能;能够实现图书的查询,订购等功能。该系统基本上具备一个网上图书销售系统应该具备的功能,该设计项目基本上体现了构建一个动态商务网站所需要的技术,可以说,目前的大型商务网站也就是我们这个小型网站在内容上的扩充和重复。

通过这次的课程设计,我了解了目前流行的动态商务网站的构成和运作原理,掌握了用JSP构建动态网站的相关知识和技术原理,锻炼了自己的动手实践能力。更重要的是,通过这次的课程设计,我培养出了刻苦钻研的学习精神和严肃认真的学习态度,这对我以后的学习和工作有很大的益处。

在这次课程设计过程中,我得到了指导老师汪老师和其他同学的悉心指导。在此,我对他们表示衷心的感谢!

1 选题背景

电子商务(E-COMMERCE或E-BUSINESS)是信息时代商业模式的实质性变革,是未来贸易发展的方向。其实施牵涉社会信用体系,法律环境,经济次序诸方面,是一个与社会大环境息息相关并独具完整结构体系的系统工程。电子商务网站(网站商场)是整个电子商务的一个组成部分,它与传统商务相比具有5方面主要优势。(1)无需店铺租金等,能使营业成本大大低于传统商店。(2)采用"零库存"管理方式,可大大缩短资金的周转周期。(3)互联网商务更有利于开拓全球市场。(4)实现24小时不间断营业,有利于提高营业额。(5)可使用多媒体手段进行促销活动,可依靠客户数据库提供全新个人服务。随着计算机与通信技术的飞速发展,电子商务的开展势在必行。

进入90年代以来,随着计算机网络技术发展与应用的极大突破,企业利用互联网争夺新市场,进行电于商务活动的越来越多,并又绝大多数获得了较好的经济效益,建立一个好的网站正越来越受到企业的重视和关注。网络技术的飞速发展,给世界创造了巨大的信息财富,全球经济的延伸,使人类产生了广泛交流的强烈愿望。面对电子商务的波澜浪潮,各个大小商业网站应运而生。据统计,国内的电子商务网站已由1999年的200家发展到现在的600家,并以平均每天开通两家商务网站的速度递增。电子商务网站的起步与发展,改变了传统的经营运作模式,为信息共享和信息协作提供了无限空间。同时,如何为电于商务网站提供独立,客观和公正的审计和签证,也将成为注册会计师谈论的热门话题。

电子商务是21世纪经济发展的引擎,商务活动在21世纪将进入电子商务时代,发展电子商务是大势所趋,是社会发展的必然,据预计,2004年全球电子商务市场将从1999年的1513亿美元增长到7万亿美元。而中国的电子商务交易额2000年底将达到8亿美元,到2002年将增长到100亿美元。作为一种全新的商务方式,电子商务带来了更多的商业机会。要在新的商业机会中赢得市场,就必须开展电子商务。电子商务包括信息流,资金流和物流3大要素,因此,包括信息和资金流的商务网站的建设在电子商务体系中有着重要的地位。

电子商务是internet发展的直接产物,是网络技术应用的全新发展方向。internet本身具有的开放性,全球性,低成本,高效率的特点,也成为了电子商务的内在特点,并使得电子商务大大超越了作为一种新的贸易形式历具有的价值,它不

仅会改变企业本身的生产,经营,管理活动,而且还将影响到整个社会的经济运行与结构,但是,要实现完整的电子商务不仅涉及到卖家和买家,还会有金融机构,政府机构,认证机构,配送中心等机构的加入,由此而涉及到网上银行,在线支付等条件的成熟和数据加密,电子签名等安全技术的完善,所以,要建立一个比较完善的电子商务网的并不随急于求成,必须要对电子商务有一定购认识和了解。还必须进行严密的策划和准备,这样才能使电子商务尽快完善,尽早收益。

电子商务经过一段时间的概念疯妙,浓雾渐渐散开,不仅冤大头似的投资商开始清醒(不是听个故事就扔钱,而是要看是否有赢利了),商务网站本身也开始考虑如何经营,亟需解决安全"着陆"的问题。4月2日,来自全国各地的100多家互联网企业的老总们齐聚北京,参加"中国互联网商业应用策略联盟高级论坛",共同研讨中国互联网的商业应用课题。其中涉及的许多问题是原先人们不愿或忌讳谈及的,仅从敢于正视电子商务网站面临困难这一点来看,这就是一个了不起的进步。

去年早些时间,还有人为是电子商务还是商务电子而争论,现在,摆在人们面前的则是如何解决电子商务的信息流,资金流和物流配送的实际问题了。要用经营企业的模式来经营网站,已成为越来越多商务网站经营者的共识。所谓电子商务,说白了就是利用互联网来做生意。在传统企业由于种种原因还弄不清楚互联网是什么的时候,一群IT业界的精英首先看到了互联网带来的商机,于是纷纷建网,做起了网络发财梦。当1998年希望做中国雅虎的"门户网站"梦破灭后,1999年"电子商务网站"又遍地开花,以为在网上做个网页,放上些图书名称就是电子商务了。谁知,这条路比"门户网站"难度更大。

2 程序开发的基础技术

2.1 HTML语言

HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。与常见的字处理文件不同,Web页以超文本标识语言编排格式。HTML文件是带有特定HTML插入标记的用以编排文档属性和格式的标准文本文件。它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用

作World Wide Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW 上其它Homepage的连结信息。

HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。生成一个HTML文档主要有以下三种途径:

1.手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工

具)。

2.通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文

档。

3.由Web服务器(或称HTTP 服务器)一方实时动态地生成。

一般的HTML页面具有如下的结构:

这是HTML正文部分

可见在一个HTML网页文件中,一般必须有一对〈html〉标记作为文件的开头和结尾,在标记后是头部标记,其后是实体标记。

2.2 JavaSCRIPT语言

JavaScript脚本语言脚本是应用程序在网页上表达的语言,可以将脚本嵌入Web 页中。通常脚本在服务器上运行,但也可以采用客户端和服务器端结合使用JavaScript是JSP的默认脚本语言.

2.3 JSP概述

Java Server Page(简称JSP)是基于Java的技术,用于创建可支持跨平台及跨Web服务器的Web服务器端应用程序(即所谓的动态网页)。它是由Sun Microsystem 公司倡导,由多家公司合作建立的一种动态网页技术标准.

JSP正式发布于1999年6月,是基于Java Servlet以及整个Java体系的Web开发技术。在传统的网页(即扩展名为 .html的文件)中加入Java程序片(Scriplet)和JSP

标记(tag)即可构成一个常规的JSP网页(其扩展名为 .jsp)。

目前的Java2 platform Enterprise Edition(简称J2EE),是Sun公司为企业级应用建立的高水准的结构,它获得了各大开发平台提供商的积极支持,并已成为当今企业应用开发的主流平台。JSP是J2EE平台上的一个组件,由于JSP技术被设计成独立于平台和服务器,因此可以利用这一技术建立先进、安全和跨平台的网站。

2.4 JSP工作原理

在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP 引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功, JSP 引擎用javac把Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLETjspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。然后jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。

虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用, 然后servlet实例便被标记加入"垃圾收集"处理。 jspInit()及jspDestory()格式如下:可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的源。缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区

中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:该JSP网页已完成信息的输出缓冲区已满 JSP中调用输出缓冲区的大小可以用:设置输出缓冲区的大小为1KB。设置输出缓冲区的大小为0,即不缓冲。用response.isCommitted()可检查看服务端是否已将数据输出到客户端. 如果返回值是TRUE则已将数据输出到客户端,是FALSE则还没有.有以下3种方法可以做到输出向该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容.下面的方法也能改变HTTP HEADER属性,它的原理和 1 是一样的.采用 该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。

2.5 JSP的发布

当编辑好JSP文件后,必需发布后才能实现其功能,JSP文件本身并不能运行。我们用Tomcat来发布JSP文件。

2.6 SQL语言简单介绍

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create 以及Drop 在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。除了上面所提到的运算符外,LIKE运算符在where条件从句中也非常重要。LIKE运算符的功能非常强大,通过使用LIKE运算符可以设定只选择与用户规定格式

相同的记录。

2.7 JDBC技术介绍

许多开发者和用户都在寻找Java程序中访问数据库的便捷方法。由于Java是一个健壮,安全,易于使用的,易于理解且可以从网络中自动download ,所以它成为开发数据库应用的一种良好的语言基础。它提供了C,C++,Smalltalk, BASIC, COBOL, and 4GLs的许多优点。许多公司已经开始在Java与DBMS的连接方面做工作。

许多Java应用开发者都希望能够编写独立于特定DBMS的程序,而我们也相信一个独立于DBMS的接口将使得与各种各样DBMS连接变得最为便捷,开发更加迅速。所以我们认为定义一个通用的SQL数据库存取框架,在各种各样的提供数据库连接模块上提供统一的界面是十分有意义的。这使程序员可以面对单一的数据库界面,使数据库无关的Java工具和产品成为可能,使得数据库连接的开发者可以提供各种各样的连接方案。我们看到我们定义一个通用低层的,支持基本SQL功能的JavaDataBase Connectivity (JDBC)API的紧迫任务。

JDBC API得到数据库开发厂商,连接开发厂商,ISV,以及应用开发者的支持是十分重要的。我们相信把我们的工作建立在ODBC抽象层的基础上将JDBC更加容易得到大家的接受。而且从技术上来说,ODBC是我们设计工作的一个良好基础。

因为ODBC是一个C语言接口,所以ODBC在Java中直接使用不适当。从Java 中来调用C代码在安全性,健壮性,实现的方便,可移植性等等方面有许多不便。它使得Java在这些方面的许多优点得不到发挥。

3 需求分析

3.1系统说明

本系统是一个中小型的电子商务系统----网上书店,可以为各类用户提供方便的在线买书环境,符合目前国内流行的电子商务模式。用户可以在系统中实现注册、浏览图书、搜索查询图书、下定单、处理定单等功能;管理员可以通过用户管理、定

单管理、图书管理、评论管理等管理功能来对系统进行维护更新。

网站的组成有以下几个子系统组成:

1. 主页,显示欢迎界面,提供近期的书本。

2. 购物车,处理订购并显示想要订购的书本。

3. 查询系统,通过书本编号、书本名称来查询是否有自己需要的书本。

4. 用户注册系统,处理新用户的注册和老用户买书时的确认。

3.2 可行性分析

1.技术可行性。

根据已有的计算机平台和开发环境,已充分具备开发该系统对计算机软硬件、数据库和开发工具的要求。只要利用好已有的参考资料,结合好已学的计算机专业知识,投入大量的时间,完成该系统虽有困难,但是是可行的。

2.经济可行性。

网上购物系统不需要投入大量的人力、物力和财力,成本很低,但是一旦实现却能在生产实际中发挥着极其重要的作用,为我们的社会生产节省巨大的人力、物力和财力,相应会带来良好的经济效益,所以应鼓励软件开发人员积极开发。

3.使用可行性。

该系统开发完成后将具有易使用,易理解,易维护等特性,对计算机操作人员的计算机水平要求不高,可以很方便的为使用者服务。

3.3 系统功能简介

3.3.1 基本功能

●游客可以浏览网站

●用户登陆

●用户能够浏览网站

●提供搜索引擎,使用户能够按特定的条件对所需图书进行搜索

●用户下定单购买图书

●用户处理定单

3.3.2 用户界面设计

3.4 系统运行环境

操作系统:Windows 9X、Windows NT Workstation/Server 4.0以上、Windows 2000 Server/Professional、Windows XP Professional。

CPU:没有很高的要求,只要能够顺利运行Windows系列操作系统就可以了。当然,CPU的处理速度越快,运行JSP代码的效率越高。

内存:最低配置32MB,建议使用64MB以上内存,如果使用Windows 2000或Windows XP建议使用128MB以上内存。

硬盘空间:至少需要50MB以上的硬盘空间来安装所需的组件。

运行JSP的服务器端要求:(如表2.1所示)

表2.1

4 系统设计

4.1 系统设计思想

本系统采用三层架构设计,它的工作原理如图3-1所示。

图3-1

采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。

4.2 系统功能模块化

如图3-2为本系统的功能模块图。

图3-2

4.3 数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

4.3.1 数据库需求分析

针对一般在线书店的需求,得出如下需求信息。

用户分为游客和已注册用户。

?订单分为单张详细订单和总订单。

?一个用户可以购买多本图书。

?一个用户对应一张订单。

?一个列表对应多张订单。

针对本系统功能分析,总结出如下的需求信息。

?用户,包括数据项:用户ID、用户名、密码。

?图书,包括数据项:图书编号、图书名、价格、图书介绍。

?订单列表,包括数据项:订单编号、图书编号、购书数量。

?订单,包括数据项:订单编号、用户编号、下单时间。

4.3.2 数据库概念结构

从本系统中规划出的实体有:用户实体、图书实体、订单实体、订单列表实体。

实体之间关系的E-R图如图3-3所示。

图3-3

用户信息实体的E-R图如图3-4所示。

图书实体的E-R图如图3-5所示。

订单实体的E-R图如图3-6所示。

订单列表实体的E-R图如图3-7所示。

4.3.3 数据库逻辑机构设计

在线书店数据库中各个表的设计结果如下面的标和所示。

表3-8为图书信息列表。

表3-8

表3-9为用户信息列表。

表3-9

表3-10为订单总表,记录某个用户的订单信息。

表3-10

表3-11为订单表,记录但张订单的具体信息。

表3-11

5 详细设计

5.1 系统概述

我设计的这个系统是一个由JSP实现的网上购书系统。它实现了基本的登录验证、查询图书、分页处理、购物车处理以及订单处理功能,其主要界面见图4-1:

图4-1

5.3 系统主要文件

这个购书系统主要有2类文件,一类是Bean文件,我把它们统一放在了cart文件夹里,保存在jakarta-tomcat-5.0.27\common\classes\cart下,(这是tomcat要求的默认存放Bean的路径);另一类是jsp文件,保存在jakarta-tomcat-5.0.27\webapps\ROOT。(这是tomcat的默认工作环境)

Bean文件:CartManager.java,OrderEntity.java,OrderItemEntity.java

ProductEntity.java,UserEntity.java

Jsp文件:cart.jsp

5.3 详细代码及说明

5.3.1实现用户实体的Bean

1)用户作为实体,我把他的id, 姓名,密码作为其属性在Bean里面做了定义,它们都是和数据库里的user表相对应的,在这个Bean里封装的方法也主要是对这个表进行操作.这个几个属性都被定义为类的私有成员,外界不可访问

private String id;

private String userName;

private String userPassword;

2)构造函数里做了2件事情,第一:寻找数据库连接驱动;第二:对上面的3个私有成员初始化:

public static String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";

public static String sConnStr = "jdbc:odbc:cart";

public static Connection conn = null;

public UserEntity(String id,String userName,String userPassword)

{

try

{

Class.forName(sDBDriver);

//采用Class.forName方法显式加载一个驱动程序

}

catch(https://www.sodocs.net/doc/139423446.html,ng.ClassNotFoundException e)

{

System.err.println("UserEntity: " + e.getMessage());

}

this.id=id;

https://www.sodocs.net/doc/139423446.html,erName=userName;

https://www.sodocs.net/doc/139423446.html,erPassword=userPassword;

}

根据上面对变量sDBDriver ,sConnStr的定义和初始化可以看出,我在连接数据库的时候采用的是jdbc-odbc桥的方式,这种方式采用的驱动是JDK自带的,不需要另外安装。但是,为了与特定的数据库连接,我们必须建立一个数据源:cart。给3

个属性赋值,我利用了this指针。

3)这个类我封装了2类方法:一是查找特定用户名的所有记录,代码如下:public static UserEntity queryUser(String userName) throws SQLException

{

try

{

Class.forName(sDBDriver);

}

catch(https://www.sodocs.net/doc/139423446.html,ng.ClassNotFoundException e)

{

System.err.println("UserEntity: " + e.getMessage());

}

//query from database

String sql="select id,user_name,user_password from user where user_name= ? ";

ResultSet rs = null;

try

{

conn = DriverManager.getConnection(sConnStr);

PreparedStatement prepStmt = conn.prepareStatement(sql);

prepStmt.setString(1,userName);

rs = prepStmt.executeQuery();

}

catch(SQLException ex)

{

System.err.println("OrderItemEntity executeQuery: " + ex.getMessage());

}

UserEntity user=null;

if(rs.next())

user=new UserEntity(rs.getString(1),rs.getString(2),rs.getString(3));

return user;

}

这个函数有1个参数,String userName,就是通过这个用户名在user表里查询相应的用户的。要查询数据库里user表,就必须先连接数据库。连接数据库第一步是加载驱动,之后就是进行连接。我采用DriverManager类的getConnection方法来建立与cart数据源的连接,连接成功后,返回一个Connection类的对象conn.要查找特定用户名的纪录,其实就是对uesr进行查询操作。PreparedStatement对象就是用于查询语句的执行,它是Statement的子类,与Statement不同的地方,PreparedStatement对象可以接受参数,这里需要接受的参数是user_name,然后进行预编译。在每一次执行这个查询,都可以给sql语句传输不同的user_name,这样大大提高了灵活性。要想查询后的结果最后显示给用户,必须对ResultSet对象进行操作,即对rs进行操作。我在程序里是把该记录赋给一个UserEntity对象。

该类封装的另一种方法是:用户名和密码的获得。这个主要是为了方便后面验证用户合法性使用

public String getUserName()

{

return userName;

}

public String getUserPassword()

{

return userPassword;

}

5.3.2实现图书实体的Bean

虽然我做的是一个购书系统,但考虑到系统的可扩展性,我把书当作一种图书来进行定义。同样,参照数据库里的product表,我给图书这个类定义了如下4个属性,图书id,图书名称,图书价格,图书note,其类型同样是该类的私有属性:private String id;

相关主题