C-S图书销售管理系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第1页
C-S图书销售管理系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第2页
C-S图书销售管理系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第3页
C-S图书销售管理系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第4页
C-S图书销售管理系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

C-S图书销售管理系统摘要随着时代的进步,科技的发展,计算机不但逐渐步入寻常百姓家庭,成为人们日常生活中不可或缺的一部分,而且在工业、农业、商业等多领域起着巨大作用。计算机的广泛应用对提高经济效益、生活效率、实现管理现代化、科学化、智能化等方面起到了举足轻重的作用,并且取得了显著效果。基于C/S的图书销售管理系统是专为图书销售单位而设计,它取代了过去会计、出纳的“账本式”记录与管理,在给工作人员带来方便快捷的同时也大大提高了他们的工作效率,加快了管理步伐,避免了账目混乱,任务繁重等问题,符合现代办公的需求。本系统主要使用Java中的GUI(图形用户界面)和AWT编程,开发环境为Eclipse,数据库采用MySQL5.0。整体框架采用三层架构模式,即显示层、业务层、数据层,大大降低了程序的耦合性。系统的主要功能包括:销售管理、库存管理、书本管理、种类管理、出版社管理五大功能模块,方便快捷地帮助书店管理人员实现了对图书进、存、销三方面的管理。关键词:图书;销售管理系统;C/S结构iBooksales&managementsystembasedonC/SAbstractWiththerapiddevelopmentofscienceandtechnology,thecomputernotonlygraduallyintotheordinarypeoplefamily,becomeanindispensablepartofPeoplesDailylife,andinmanyfieldssuchasindustry,agriculture,businessplaysabigrole.Computeriswidelyusedtoimprovetheeconomicbenefit,thelifeofefficiency,realizemodernizationmanagement,scientific,intelligent,etchasplayedapivotalrole,andachievedsignificanteffect.Booksales&managementsystembasedonC/Sisspeciallydesignedforbooksalesunit,ithasreplacedthepastrecordofaccountantandcashierbooksandthemanagement,thestafftobringconvenientatthesametimealsogreatlyimprovetheirworkefficiency,quickenthestepsofthemanagement,toavoidthechaosaccounts,theproblemsuchasonerous,meetingtheneedsofthemodernoffice.ThissystemismainlyusedinJavaGUI(graphicaluserinterface)andAWTprogramming,developmentenvironmentforEclipse,usingMySQL5.0database.OverallframeworkUSESthethree-tierarchitecturemodel,namelythedisplaylayer,businesslayer,datalayer,greatlyreducesthecouplingoftheprogram.Systemsmainfeaturesinclude:salesmanagement,inventorymanagement,booksmanagement,categorymanagement,pressfivebigfunctionmodule,convenientandquicktohelpbookstoremanagersrealizethebooksintomanagement,saveandpin.Keywords:Book;Sales&Management;C/Sstructure0目录摘要.iAbstract.ii1绪论.11.1课题背景.11.2目的和意义.11.3开发工具及技术.11.3.1开发工具.11.3.2开发语言.21.3.3开发结构及模式.31.4软硬件需求.31.4.1硬件需求.31.4.2软件需求.32需求分析.42.1可行性分析.42.1.1技术可行性.42.1.2经济可行性.42.1.3操作可行性.42.1.4法律可行性.42.2系统流程图.42.3系统用户用例图.52.4功能模块需求分析.52.5设计的基本思路.62.6性能需求.62.6.1系统的易操作性.62.6.2数据的正确性和完整性.72.6.3数据的安全性.72.7界面需求.73系统分析与设计.83.1数据库的分析与设计.83.1.1数据库的需求分析.83.1.2数据库的概念结构设计.83.1.3数据库的逻辑结构设计.113.2连接数据库的前期准备工作.143.2.1编写配置读取类.143.2.2编写JDBC操作类.163.2.3创建数据转换工具类.174系统功能的实现.194.1创建数据库对象.194.2管理员登陆页面.204.3设计父类.2114.4出版社管理模块.234.5书本管理模块.284.6销售管理模块.355系统测试.435.1系统测试目的与意义.435.2测试过程.435.2.1登录模块测试.435.2.2销售管理模块测试.445.2.3库存管理模块测试.445.2.4书本管理模块测试.44结论.46参考文献.47致谢.48英文文献原文.49中文译文.5501绪论1.1课题背景改革开放以来,我国经济迅速发展,科技日益更新,计算机以迅雷不及掩耳之势覆盖全球,大量实用软件更是伴随计算机语言产生而受到众多领域的青睐。好的管理软件能够把大量的工作人员从繁重的手工工作中解脱出来,提高工作效率并减少错误的发生。调查发现,目前我国中小型书店仍采用手工方式对图书进行管理记录,不仅工作量大、效率低,而且还容易出现数量不清、账目混乱等问题,与现代办公要求格格不入。中小型书店最繁重的工作就是图书进、存、销三方面的工作,因此只需要设计一款简单而实用的软件,帮助书店工作人员轻松实现这三方面的工作。混乱的界面,繁琐的操作不仅难以达到轻松管理的目的,还容易使工作人员情绪暴躁,影响书店效益。因此,我的目标是做一款界面清晰,操作方便的简单管理软件。1.2目的和意义图书销售管理系统开发的目的是为图书销售单位提供图书信息管理和提高图书销售管理工作的效率。图书销售管理系统是一个图书销售单位不可缺少的部分,它的内容对于图书销售单位的决策者和管理者来说都至关重要,所以图书销售管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理数据信息,这种管理方式存在着许多缺点,如:效率低、工作量大,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对图书销售信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高图书销售管理工作的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。1.3开发工具及技术本系统基于C/S结构设计,采用三层架构体系,编写系统主要用到Java中的GUI(图形用户界面)和AWT编程,开发环境为Eclipse,数据库采用MySQL5.0并以NavicatforMySQL作为辅助工具。下面分别对C/S模型、三层架构模式、GUI、AWT编程、Eclipse、MySQL5.0数据库和NavicatforMySQL进行简要介绍。1.3.1开发工具(1)EclipseEclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C+和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE.Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软1件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开放源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。(2)MySQL5.0MySQL5.0是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。(3)NavicatforMySQLNavicatforMySQL是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。NavicatforMySQL基于Windows平台,为MySQL量身订作,提供类似于MySQL的用管理界面工具。此解决方案的出现,将解放PHP、J2EE等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。NavicatforMySQL使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。用户可完全控制MySQL数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中(LocaltoRemote、RemotetoRemote、RemotetoLocal),进行档案备份。NavicatforMySQL支援Unicode,以及本地或远程MySQL服务器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行SQLqueries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援CSV,TXT,DBF和XML档案种类)等。软件与任何MySQL5.0.x伺服器版本兼容,支援Triggers,以及BINARYVARBINARY/BIT数据种类等的规范。1.3.2开发语言主要使用Java语言中的GUI(图形用户界面)和AWT(抽象窗口工具包)编程。(1)GUI图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口),即人机交互图形化用户界面设计,是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。(2)AWT抽象窗口工具包(AbstractWindowingToolkit,缩写为AWT)是Java的平台独立的窗口系统图形和用户界面器件工具包。AWT是Java基础类(JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。AWT提供了JavaApplet和JavaApplication中可用的用户图形界面GUI中的基本组件(components)。由于Java是一2种独立于平台的程序设计语言,但GUI却往往是依赖于特定平台的,Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口,这保证了同一程序的GUI在不同机器上运行具有类似的外观。1.3.3开发结构及模式(1)C/S结构C/S结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。(2)三层架构模式三层架构模式即显示层、业务逻辑层、数据层。其工作模式:显示层往往面向操作者,主要用来接受数据、传递数据和显示数据;业务逻辑层主要是用来处理显示层接收到的数据和数据库中的数据;数据层主要用来对数据库进行操作,其中包括常见的增、删、改、查等操作。采用三层架构模式可以大大降低了程序的耦合性,符合现代软件的标准。1.4软硬件需求1.4.1硬件需求电脑:笔记本电脑或台式电脑CPU:Pentium以上内存:512M以上1.4.2软件需求操作系统版本:WindowsXP/vista/Win7开发工具:Eclipse开发语言:Java32需求分析2.1可行性分析可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。对整个可行性研究提出综合分析评价,指出优缺点和建议以确定该项目是否可行。2.1.1技术可行性本系统开发工具是Eclipse和MySQL数据库,开发语言是Java,java是一种面向对象编程语言,简单易学而且灵活方便。数据库的设计和操作是本系统设计的核心,但在NavicatforMySQL的帮助下能够轻松便捷的对数据库进行操作。此外,大学期间学习过数据库操作语言,软件测试,UML统一建模语言等课程使系统分析、设计和测试不再成为难题。因此,完成系统实现在技术上完全具有可行性。2.1.2经济可行性开发此项目用到的软件都是开源的,为开发软件节省了大量的金钱,达到了低成本的目的。另外,本系统对计算机配置的要求不高,几乎每个家庭中可使用的电脑都能满足。因此,开发该系统在经济上是完全可行的。2.1.3操作可行性该系统是本着界面简洁、操作方便的目的进行开发,主要目的是帮助图书销售商对图书进行进、存、销三方面管理。因此该系统在操作上具有功能简单,操作简洁的优势,完全可行。2.1.4法律可行性由于在开发过程中所使用的软件都是开源软件,不存在侵权问题。此外,开发该系统的目的仅仅是作为一款管理软件应用于图书销售单位,不存在与国家法律不符的目的综上所述,该系统的开发在法律方面也是可行的。2.2系统流程图图2.1系统流程图4如图2.1所示,由于系统是C/S模式,所以无需注册等操作,只需要在编程时将用户名和密码设定,如客户对用户名和密码有特殊要求,由编程人员将客户要求的用户名和密码事先输入程序当中,如本系统的用户名和密码都为yujian,该数据已经在数据库的T_USER表事先存好。如果客户输入错误,则要重新回到登录页面输入正确的账号密码。如果输入正确,则可以进入用户操作页面进行相应的操作。在进一系列的操作之后然后点击关闭按钮,即可退出系统。2.3系统用户用例图系统只涉及图书的进、存、销三方面的功能,其所对应的功能模块分别是图书管理模块、库存管理模块、销售管理模块。此外,为方便用户在这三方面的操作更加简洁增加了出版社管理模块,种类管理模块,这样做一方面能够使用户界面简单易用,另一方面能够使用户在主要使用的三个重要界面有更多的选择而不是去输入,减少了错误发生的概率。管理员即能够正确输入用户名和密码的操作人员,且其享有全部权限。因此管理员用例图十分清晰明了,如图2.2。图2.2管理员用例图图2.2清晰明了的告诉我们用户登录是前提,只有用户经过正确的身份验证才可以操作本系统几个最重要的操作页面。2.4功能模块需求分析本系统本着界面简洁大方,操作简单的原则实现以下功能:1.系统界面清晰分明、简单易用,管理人员能够在短时间内熟练操作。2.管理员享有销售管理、库存管理、图书管理、出版社管理、种类管理五大权限。3.尽可能的让用户去选择,而不是输入,减少错误发生的概率。4.增加主要功能的快捷键,增加操作的简易性。系统的功能结构图,如图2.3。5图2.3系统功能模块图从图2.3中可以看到,系统分为六个模块,分别是管理人员登录模块,销售管理模块,入库管理模块,图书管理模块,种类管理模块和出版社管理模块,其中登录模块并不与其它模块相平行,登录模块只是决定操作人员是否有权限去操作其它五大模块。2.5设计的基本思路设计思路遵循以下几点:1.考虑到图书销售单位只是简单的对图书进行管理、记录,因此软件采用C/S结构,C/S结构的优点是客户端响应速度快,能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。2.采用三层架构模式。一方面能够使开发人员的逻辑思维清晰,提高软件开发效率,另一方面降低了程序的耦合性,例如本程序如果要开发成为B/S结构只需要改动业务逻辑层即可。3.模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。4.效率第一。设计该系统的目的是让大量工作人员从繁琐的工作中解脱出来,因此本系统必须达到提高工作效率的目的。5.界面清晰明了,操作简单。方便用户使用,让用户能够在最短时间轻松方便的适应系统的操作。7系统设计不仅要功能完善还要突出重点。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。2.6性能需求2.6.1系统的易操作性为使工作人员能够轻松操作该系统,需做到以下要求:1.操作界面不涉及跳转,要操作的界面覆盖已显示的界面。2.主要功能界面尽可能的让用户去选择,而不是输入。63.部分系统设计加入自动计算功能,且不可更改。4.在操作发生错误时出现友好提示。2.6.2数据的正确性和完整性1.数据库设计过程中明确哪些数据可以为空,哪些数据不能为空。2.关系表中的相关数据必须明确统一。3.具有自动判断功能,如销售数量大于库存数量时应给出友好的错误提示。4.具有自动加、减、乘功能,保证单价、总量等数据的正确性。5.交易日期根据系统时间而显示、记录,且不可更改。2.6.3数据的安全性只有被授权的管理人员,即知道账户和密码的人才可进入系统。2.7界面需求界面设计是整个设计很重要的一部分,好的界面不仅方便管理人员操作,还可以使操作人员有一个阳光的心情,提高工作人员工作效率,因此界面的设计必须满足以下几点要求:1.简易性界面的简洁是让用户便于了解,便于使用,并能减少用户发生错误选择的可能性。2.用户语言界面中要使用能反应用户本身的语言,而不是程序员的语言。3.记忆负担最小化人脑不是电脑,在设计界面时必须要考虑大脑处理信息的限度。人类的短期记忆极不稳定,且有限,24小时内存在25%的遗忘率。所以对用户来说,浏览信息要比记忆更加重要。4.一致性一致性是每个优秀界面都具备的特点。界面的结构必须清晰且一致,与客户的需求一致。5.清楚视觉上便于理解与使用。6.用户熟悉程度用户可通过已掌握的知识来使用界面,但不应超出一般常识。7.人性化高效率和用户满意度是人性化的体现。想用户所想,做用户所做,用户总是按照他们自己的方法理解和使用。8.安全性用户做出危险的选择使有信息介入系统的提示。73系统分析与设计3.1数据库的分析与设计数据库是整个系统的各个部分能否紧密地结合在一起以及如何结合的关键所在,因此数据库是系统的核心和基础。的计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库设计的好坏直接影响到整个系统的质量和效率。数据库的设计一般经过需求分析、概念设计、逻辑设计、物理设计4个步骤。3.1.1数据库的需求分析首先可以确定需要一个用户表,其中储存的数据有用户名和密码,以作验证之用。其次,系统相关的表,从最基础开始,有出版社表、书的类型表、书表、入库记录表和销售记录表,其中,一条入库记录中涉及多本书,一条销售记录也涉及多本书,因此还需要书的入库记录表和书的销售记录表,一条书的入库记录对应一本书,该条书的入库记录属于某一条入库记录,可以理解成这是书与入库记录的关系表,同样地,书的销售记录与书的入库记录一样。3.1.2数据库的概念结构设计概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。数据库的概念结构设计采用实体联系(E-R)模型设计方法。E-R模型用E-R图表示,E-R模型法的组成元素有:实体、属性、联系。下面简单介绍这三种组成元素:1.实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,例如一名学生,一门课程等;也可以是抽象的概念或联系,例如一次选课,一场竞赛等。2.属性(Attribute):每个实体都有自己的一组特征或性质,这种用来描述实体的特征或性质称为实体的属性。例如,学生实体具有学号、姓名、性别等属性。不同实体的属性是不同的。实体属性的某一组特定的取值(称为属性值)确定了一个特定的实体。例如,学号是0611001、姓名是王冬、性别是女等等,这些属性值综合起来就确定了“王冬”这名同学。属性的可能取值范围称为属性域,也称为属性的值域。例如,学号的域为8位整数,姓名的域为字符串集合,性别的域为(男,女)。实体的属性值是数据库中存储的主要数据。3.联系(Relation):现实世界中,事物内部以及事物之间不是孤立的,是有联系的,这些联系反映在信息世界中表现为实体内部的联系和实体之间的联系。概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式独立于数据库逻辑结构,独立于数据库的DBMS,不依赖于计算机系统的,根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图,其中用矩形表示实体,椭圆形表示属性,棱形表示实体间关系。本系统概念设计图有:8图3.1管理员实体E-R图图3.1所示为管理员信息的E-R图,其中包括的信息有ID、用户名和密码,ID是隐藏列,作为主键。用户名和密码作为是否有权操作系统的验证信息储存在数据库当中。图3.2出版社实体E-R图图3.2是出版社信息的E-R图,主要包括出版社名称、联系人、联系电话、简介四方面,存储这些信息的主要目的是方便图书管理人员联系出版社以进行进退货的协商。9图3.3书本信息实体E-R图图3.3为书本信息的E-R图,主要包括的信息有书名、作者、单价、缩略图和库存数量。书名、单价和作者是由操作人员输入并储存在数据库当中的。库存数量是当前书本的数目,当数目发生改变时,数据会自动更新。图3.4种类信息实体E-R图图3.4是种类信息的E-R图,主要包括种类名称、简介两部分信息。由于种类管理页面是作为图书管理页面的辅助页面设计的,其数据库中的信息也是为图书管理信息设计的。图3.5入库信息实体E-R图图3.5是入库信息的E-R图,因为库存管理页面有个按日期查询入库信息的功能,为此,需要设计一个记录入库日期的数据库。10图3.6交易信息实体E-R图图3.6是交易信息的E-R图,设计这样一个数据的目的同设计入库信息的目的是一样的,都是为了方面管理人员进行查询。图3.7书的入库信息实体E-R图如图3.7,书的入库信息不同于入库信息,书的入库信息包括入库书本的名称、入库数量和相关的入库记录三方面的信息。入库管理信息页面中按日期查询入库记录所查询到的内容正是此数据中记录的相关信息。图3.8销售信息实体E-R图图3.8是销售信息的E-R图,与图3.7相似,这个数据库的设计主要是保存销售的书本、数量和当天的销售记录信息,其主要目的一方面是记录,另一方面是方便管路人员查询。3.1.3数据库的逻辑结构设计由于数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-11R模型向关系数据库模型转换应遵循下列原则:1.每一个实体要转换成一个关系2.所有的主键必须定义非空(NOTNULL)3.对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据E-R模型,图书管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明:1.管理员信息表只记录账户与密码,以便登录用。表结构如表3.1所示。表3.1管理员信息表(t_user)列名数据类型长度允许空是否主键说明IDint自增否是主键USER_NAMEvarchar20是否用户名USER_PASSWORDvarchar20是否密码2.种类信息表主要是记录了书的种类的基本信息,表结构如表3.2所示。表3.2书的种类信息表(t_book_type)列名数据类型长度允许空是否主键说明IDint自增否是主键TYPE_NAMEvarchar50是否类别名称TYPE_INTROvarchar200否否种类简介3.出版社信息表主要是记录了出版社的相关信息,表结构如图3.3所示。表3.3出版社信息表(t_publisher)列名数据类型长度允许空是否主键说明IDInt自增否是主键PUB_NAMEvarchar50是否出版社名称PUB_TELvarchar50是否联系电话PUB_LINK_MANvarchar50是否联系人PUB_INTROvarchar200是否简介124.书本信息表主要记录了与书相关的所有内容,表结构如表3.4示。表3.4书本信息表(t_book)列名数据类型长度允许空是否主键说明IDint自增否是编号BOOK_NAMEvarchar50是否书名BOOK_INTROvarchar50是否简介BOOK_PRICEdouble50是否单价TYPE_ID_FKint100否否种类外键PUB_ID_FKint100否否出版社外键IMAGE_URLvarchar200是否缩略图URLAUTHORvarchar200是否作者REPERTORY_SIZEbigint10是否库存数量5.交易记录表,一个交易记录包括多个书的销售记录,一次交易可能有多本书,表结构如表3.5示。表3.5书本交易信息表(t_sale_record)列名数据类型长度允许空是否主键说明IDint自增否是编号RECORD_DATEdatetime是否交易日期6.书的销售记录,一条记录对应一本书,表结构如表3.6示。表3.6书本信息表(t_book_sale_record)列名数据类型长度允许空是否主键说明IDint自增否是编号13BOOK_ID_FKint100是否交易日期T_SALE_RECORD_ID_FKint100是否销售记录所对应的交易记录TRADE_SUMint10是否销售数量7.入库记录表,一次入库会入多本书,表结构如表3.7所示。表3.7入库记录表表(t_book_sale_record)列名数据类型长度允许空是否主键说明IDint自增否是编号RECORD_DATEdatetime是否交易日期8.书的入库记录表,其中包括入库的书、对应的入库记录、入库数量等信息,表结构如表3.8所示。表3.8入库记录表表(t_book_in_record)列名数据类型长度允许空是否主键说明IDint自动增长否是主键BOOK_ID_FKint100是否入库的书T_SALE_RECORD_ID_FKint100是否对应的入库记录TRADE_SUMint10是否销售数量3.2连接数据库的前期准备工作数据库中的表已经建好,在系统功能实现时只需要建立每个表相对应的类即可,要使客户对书本的管理信息存入数据库就必须将数据库与程序联系起来。为此,需要做一些工作将数据库“嵌入”系统之中。3.2.1编写配置读取类连接数据库就要先做数据库相关的一些配置,例如对应数据库的相关驱动、数据库地址、用户名和密码,然后可以放到配置文件中,如果需要更换数据库或者地址,只需要修改这份配置文件即可。建立配置文件perties,内容如下:/JDBC驱动14jdbc.driver=com.mysql.jdbc.Driver/连接地址jdbc.url=jdbc:mysql:/localhost:3306/book_system/数据库用户名jdbc.user=yujian/密码jdbc.pass=yujian建立好该文件后,再编写类去读取该文件,获得所需要的值即可。用于读取配置的PropertiesUtil类,代码如下:publicclassPropertiesUtil/该记录所对应的书的销售数量privatestaticPropertiesproperties=newProperties();privatestaticStringCONFIG=/cfg/perties;/配置文件的路径/读取资源文件,设置输入流privatestaitcInputStreamis=propertiesUtil.class.getResourceAsStream(CONFIG);publicstaticStringJDBC_DRIVER;/数据库驱动publicstaticStringJDBC_URL;/jdbc连接urlpublicstaticStringJDBC_USER;/数据库用户名publicstaticStringJDBC_PASS;/数据库密码staticproperties.load(is);/加载输入流/获得配置的各个属性JDBC_DRIVER=properties.getProperty(jdbc.driver);JDBC_URL=properties.getProperty(jdbc.url);JDBC_USER=properties.getProperty(jdbc.user);JDBC_PASS=properties.getProperty(jdbc.pass);publicclassPropertiesUtil/该记录所对应的书的销售数量privatestaticPropertiesproperties=newProperties();privatestaticStringCONFIG=/cfg/perties;/配置文件的路径/读取资源文件,设置输入流privatestaitcInputStreamis=propertiesUtil.class.getResourceAsStream(CONFIG);publicstaticStringJDBC_DRIVER;/数据库驱动publicstaticStringJDBC_URL;/jdbc连接urlpublicstaticStringJDBC_USER;/数据库用户名publicstaticStringJDBC_PASS;/数据库密码static15properties.load(is);/加载输入流/获得配置的各个属性JDBC_DRIVER=properties.getProperty(jdbc.driver);JDBC_URL=properties.getProperty(jdbc.url);JDBC_USER=properties.getProperty(jdbc.user);JDBC_PASS=properties.getProperty(jdbc.pass);3.2.2编写JDBC操作类JDBC是JavaDataBaseConnectivity的简称,是Java中进行数据库连接的技术。JDBC的API提供了标准统一的SQL数据存取接口,可以让程序员不需要关心如何去连接不同的数据库,只需为不同的数据库提供不同的驱动,就可以达到连接不同数据库的要求。配置好了之后,开始着手编写数据库的操作类,首先肯定是帮我们进行数据库连接,我们之前配置了连接的相关属性,接着我们需要这个类帮我们提供查询、执行SQL等功能。确定好目标后,开始编写。新建JDBCExecutor类,该类具有属性如下:privatestaticStringDRIVER=PropertiesUtil.JDBC_DRIVER;/获得驱动privatestaticStringURL=PropertiesUtil.JDBC_URL;/获得url/获得连接数据库的用户名privatestaticStringUSER=PropertiesUtil.JDBC_USER;/获得连接数据库的密码privatestaticStringPASS=PropertiesUtil.JDBC_PASS;privateConnectionconnection;/连接对象privatestaticJDBCExecutorjdbcExecutor;/维护一个本类型的对象privateStatementstmt;/维护一个本类型的对象privatestaticStringDRIVER=PropertiesUtil.JDBC_DRIVER;/获得驱动privatestaticStringURL=PropertiesUtil.JDBC_URL;/获得url/获得连接数据库的用户名privatestaticStringUSER=PropertiesUtil.JDBC_USER;/获得连接数据库的密码privateConnectionconnection;/连接对象privatestaticStringPASS=PropertiesUtil.JDBC_PASS;privatestaticJDBCExecutorjdbcExecutor;/维护一个本类型的对象privateStatementstmt;/维护一个本类型的对象注:由于创建一个Connection对象需要耗费很大的资源,因此使用单态模式,让JDBCExecutor类维护一个JDBCExecutor对象,可以在构造器中创建Connection,由于JDBCExecutor是单态的,因此可以保证在应用中只创建一个Connection。然后在JDBCExecutor的构造器中创建各个对象,再提供一个方法返回JDBCExecutor的实例。privateJDBCExecutor()/初始化JDBC驱动并让驱动加载到jvm中Class.forName(DRIVER);16/创建数据库连接connection=DriverManager.getConnection(URL,USER,PASS);/创建Statement对象stmt=connection.createStatement();publicstaticJDBCExecutorgetJDBCExecutor()/如果本类所维护jdbcExecutor属性为空,则调用私有的构造器获得实例if(jdbcExecutor=null)jdbcExecutor=newJDBCExecutor();returnjdbcExecutor;privateJDBCExecutor()/初始化JDBC驱动并让驱动加载到jvm中Class.forName(DRIVER);/创建数据库连接connection=DriverManager.getConnection(URL,USER,PASS);/创建Statement对象stmt=connection.createStatement();publicstaticJDBCExecutorgetJDBCExecutor()/如果本类所维护jdbcExecutor属性为空,则调用私有的构造器获得实例if(jdbcExecutor=null)jdbcExecutor=newJDBCExecutor();returnjdbcExecutor;最后只需要编写一些简单查询功能,并把查询后的结果保存在一个对象中即可:publicRes

温馨提示

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

评论

0/150

提交评论