图书馆管理系统j2ee.docx
《图书馆管理系统j2ee.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统j2ee.docx(24页珍藏版)》请在冰豆网上搜索。
图书馆管理系统j2ee
图书馆管理系统
:
一、安装JDK
首先下载JDK(JDK的下载页面为:
);然后运行JDK安装程序,安装过程中所有选项保持默认;最后配置JDK的环境变量:
在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。
新建系统变量JAVA_HOME:
C:
\ProgramFiles\Java\;
新建系统变量CLASSPATH:
.;%JAVA_HOME%\lib;(注意:
点号表示当前目录,不能省略)
在系统变量Path的值的前面加入以下内容:
%JAVA_HOME%\bin;(注意:
这里的分号不能省略)
到这里,JDK安装完毕。
如果出现上图红框中所标注的内容,则说明JDK安装成功!
注意:
如果以后要安装诸如Eclipse、BorlandJBuilder、JCreator、IntelliJIDEA等集成开发环境(IDE,IntegratedDevelopmentEnvironment),应该在IDE中编译运行一个简单的HelloWorld程序,以保证IDE可以识别出JDK的位置。
(
运行MyEcilpse
打开菜单Windows->Preferences,然后一次点击Myeclipse->ApplicationServers->,得到如下的界面:
设置完后点击Ok,进入下面的界面
单击运行后JBoss便启动了
二、系统概述
1.1设计目标
(
1.实现图书馆对在馆图书的按类别,书名,作者,是否已被借出等多方面的查询。
2.实现图书馆对新书入库,旧书注销的简单处理,并且建立书籍档案,方便图书管理。
3.对在馆图书进行编辑,包括添加图书信息、删除图书信息、修改图书信息。
4.建立图书馆外借读者数据库,包括添加读者信息、删除读者信息、修改读者信息。
5.可以按读者编号查询读者信息,包括该读者所借图书名称,归还日期等信息。
6.设立讨论区,方便管理员与读者之间的交流。
7.电子资源下载:
实现读者对电子文档,随书光盘的下载的功能。
1.2背景
"
近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
图书管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。
我们小组开发图书管理信息系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。
系统开发的重点
1、建立合理的表结构,避免数据冗余
各表通过特定字段实现不同表的数据连接,避免数据冗余,需要设计简洁高效的表结构。
2、建立相当的系统安全性
登录用户身份的验证机制的设计、操作页面的权限保护。
】
3、建立严密的数据表操作机制
同一表有可能在多个模块中被修改,所以严密的数据表操作机制的建立十分比较困难的,但也是必须的。
除了设计时必须有相当程度的考虑,在编制时更应加强程序逻辑的可靠性和程序调试的全面性。
2.步骤
设计数据库系统时,应该充分了解用户各方面需求,包括现有的以及将来可能增加的需求,数据库设计一般包括以下几个步骤:
(1)数据需求分析、
(2)数据库概念结构设计
(3)数据库逻辑结构设计
2.1数据库需求分析
*
用户的需求具体体现在各种信息的提供,保存,更新和查询。
这就要求数据库的结构能充分满足各种信息的输入和输出。
在仔细分析调查有关图书馆管理信息需求的基础上设计出如图(见附录——图书馆管理系统数据流程图)所示的数据流程
针对图书馆管理系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计出如下的数据项
1书库图书信息,包括数据项有:
图书编号、书名、书号、类别、出版社、作者、ISBN、印张、字数、版次、印数、定价、开本、是否在库、是否损坏、是否遗失、入库时间、图书介绍
1学生信息,包括数据项有:
学生编号、学号、姓名、性别、系别、班级、级别、已借图书、照片
2借书信息,包括数据项有:
图书序号、学生序号、是否归还、书名、姓名、学号、书号、系别、班级、已借图书、出版社、作者、借阅日期、图书类别、是否续借
3供货商信息,包括数据项有:
供货商序号、供货商、城市、地址、电话、传真、邮政编码、EMAIL、联系人、首次合作时间
4定单信息,包括数据项有:
定单序号、书名、书号、类别、出版社、作者、ISBN、印张、字数、版次、印数、定价、开本、详细信息、供货商序号、供货商、联系人、城市、订购数量、订购价格、交付方式、交货日期、定单日期、是否验收、验收日期
5过期图书信息,包括数据项有:
图书序号、书名、书号、学生序号、学生姓名、系别、班级、过期时间
6<
7员工信息,包括数据项有:
员工序号、姓名、密码、类别、性别、家庭住址、联系电话、职务、出生日期、照片
8罚款信息,包括数据项有:
流水号、罚款原因、罚款金额、日期
数据库概念结构设计
得到上面的数据项就能够设计出以下各种实体以及它们的关系,为后面的逻辑结构设计打下基础
根据上面的实力设计规划出的实体有:
图书信息实体、学生信息实体、借阅信息实体、供货商信息实体、定单信息实体、过期图书实体、员工信息实体、罚款信息实体。
…
…
图2-1图书信息实体E-R图
'
图2-2学生信息实体E-R图
)
图2-3借阅信息实体E-R图
`
~
图2-4供货商信息实体E-R图
》
图2-6过期图书信息实体E-R图
'
图2-7员工信息实体E-R图
图2-8罚款信息实体E-R图
《
|
数据库逻辑结构设计
图书馆管理系统中数据库的各个表格设计结果如下:
表2-1:
shukubiao书库图书信息表
列名
数据类型
【
说明
图书序号
Text
图书的编号,唯一
书号
Text
图书书号
书名
~
Text
书名
类别
Text
图书类别
出版社
Text
出版社
!
作者
Text
作者
ISBN
Text
图书ISBN号
印张
Text
|
图书印张
字数
Text
字数
版次
Text
图书版次
印数
^
Text
印数
定价
Currency
图书定价
开本
Text
开本
:
列名
数据类型
说明
是否在库
Boolean
是否在书库中的标志
是否损坏
Boolean
-
是否损坏的标志
是否遗失
Boolean
是否遗失的标志
入库时间
Date/Time
图书入库的日期
图书介绍
;
Text
图书的简单介绍
表2-2:
xueshengbiao书库图书信息表
列名
数据类型
说明
学生序号
Text
^
学生的编号,唯一
学号
Text
学号,不唯一
姓名
Text
学生姓名
性别
*
Boolean
性别
系别
Text
学生系别
班级
Text
学生所在班级
级别
Integer
学生的级别,表示借书的能力
已借图书
Integer
已经借过图书多少本
照片
Text
$
存放学生照片的路径
表2-3:
jh借阅信息表
列名
数据类型
说明
图书序号
Text
图书序号
(
学生序号
Text
学生序号
书名
Text
书名
姓名
Text
:
学生姓名
学号
Text
学号
书号
Text
书号
系别
>
Text
学生系别
班级
Text
学生班级
已借图书
Integer
学生已经借阅的图书数量
(
出版社
Text
出版社
作者
Text
图书作者
借阅日期
Date/Time
,
借阅日期
图书类别
Text
图书类别
是否归还
Boolean
该书是否归还
续借
,
Boolean
该书是否续借过
表2-4ghs供货商信息表
列名
!
数据类型
说明
供货商序号
Text
供货商序号
供货商
Text
供货商
/
城市
Text
城市
地址
Text
地址
电话
Text
#
电话
传真
Text
传真
邮政编码
Text
邮政编码
EMAIL
~
Text
EMAIL
联系人
Text
联系人
首次合作时间
Date/Time
首次合作时间
"
表2-5orders定单信息表
列名
数据类型
说明
定单序号
Text
定单序号
书名
,
Text
书名
类别
Text
类别
出版社
Text
出版社
…
作者
Text
作者
ISBN
Text
ISBN
印张
Text
…
印张
字数
Text
字数
版次
Text
版次
开本
:
Text
开本
印数
Text
印数
定价
Currency
定价
(
详细信息
Text
详细信息
供货商序号
Text
供货商序号
列名
数据类型
}
说明
联系人
Text
联系人
城市
Text
供货商城市
订购数量
{
Integer
订购数量
订购价格
Currency
订购价格
交付方式
Text
交付方式
`
交货日期
Date/Time
定单验收的日期
书号
Text
书号
定单日期
Date/Time
!
定单填写的日期
是否验收
Boolean
定单验收的标志
验收日期
Date/Time
定单验收日期
表2-6gqs过期书信息表
列名
数据类型
说明
图书序号
Text
图书序号
书名
·
Text
书名
书号
Text
书号
学生序号
Text
学生序号
:
学生姓名
Text
学生姓名
系别
Text
系别
班级
Text
;
班级
过期时间
Date/Time
过期的天数
表2-7password1员工信息表
列名
数据类型
(
说明
姓名
Text
员工姓名
员工序号
Text
员工序号
密码
Text
密码
类别
Boolean
员工权限级别
性别
Text
性别
@
列名
数据类型
说明
家庭住址
Text
家庭住址
联系电话
Text
<
联系电话
职务
Text
职务
出生日期
Date/Time
出生日期
照片
¥
Text
存放员工照片的路径
表2-8jhfk罚款信息表
列名
数据类型
说明
流水号
、
Long
流水号
罚款原因
Text
罚款原因
罚款金额
Currency
罚款金额
)
日期
Date/Time
日期
2.4设计方案构思
图书馆管理信息系统的功能分析
图书馆管理具有自身鲜明的特点:
(1)根据操作人员的级别不同设置权限,对系统的操作有权限的设置
(2)能够实现图书的借、还、续借功能
(3)(
(4)具有对图书库的一般性维护的功能,包括过期书统计、损坏书统计
(5)能够实现图书的采购、下定单及定单验收、图书出库的功能
(6)能够实现学生及供货商的注册、浏览、删除、查询功能
(7)能够实现员工的录入、修改等功能
(8)能够实现书库借还图书情况、供货商、学生、员工信息的打印报表功能
(9)能够实现数据备份功能
图书馆管理信息系统的功能需求分析
功能模块
$
1分级权限
2借还图书
3书库维护
4图书采购
5学生及供货商管理
系统总体功能模块框图如下图
图书馆管理系统数据流程图
$
图书馆管理系统数据流程图
图书馆管理系统数据流程图说明
本系统需要数据输入的地方有:
学生的录入和供货商的注册以及图书采购定单的填写即图书的入库
在学生信息录入之前应先设置好学生的种类以及一些相关信息然后进行学生信息的录入,学生信息保存在“xueshengbiao”表中,进行学生信息的管理;另外一个需要数据输入的地方为供货商的录入,供货商信息保存在“ghs”表中,根据供货商的信息进行供货商的管理
最后一个需要数据输入的地方为图书采购定单的填写。
在整个图书采购到图书入库的过程中需要所有的数据做为支持。
首先学生信息和图书信息二者相互作用,形成图书的借阅信息;
然后根据图书的借阅信息进行图书借阅信息的统计,统计出每一类图书的借阅数量等统计信息;
&
这些统计信息的数据支持成为图书采购计划的重要依据,拟订图书的采购任务计划;
然后根据供货商信息选择图书采购计划的供货商;
根据以上这些信息进行图书采购的定单的填写,图书采购定单保存在“orders”表中,形成图书采购定单信息的管理;
根据定单信息验收图书,同时图书入库。
最后根据入库图书的类别设置进行图书信息管理,书库信息保存在“shukubiao”中。
三、设计
MYSQL代码
#
publicStringMysqlConnect(StringSearchStr)throwsSQLException
{
Stringmysql_search_result="";
Stringquery_str="select*fromlibrarywherebooknameREGEXP"+"'"+SearchStr+"'";
//注册驱动
{
("");
}
"
catch(ClassNotFoundExceptione)
{
mysql_search_result="beginerror";
();
}
state=null;//数据库表达式
mysql_connect=null;//数据库连接
search_result=null;//查询结果集
—
//下面连接数据库并进行查询
try
{
mysql_connect="jdbc:
","root","123456");
state=();
search_result=(query_str);
while())
…
{
//每条记录的各列项之间用"#"隔开
mysql_search_result+=("bookname")+"#"+("author")+"#"+("publicaddr")+"#"+("publictime")+"#"+("abstract")+"#"+("catalog")+"#";
}
}
catch(SQLExceptione)
{
mysql_search_result="error";
>
();
}
finally
{
try
{
();
}
catch(SQLExceptione)
{
}
try
{
();
}
catch(SQLExceptione)
(
{
}
try
{
();
}
catch(SQLExceptione)
{
{
}
}
returnmysql_search_result;
}
(2)Xml代码
xsi=""
(
xsi:
schemaLocation=""version="">
//localhost:
3306/itcastuseUnicode=true&characterEncoding=UTF-8"/>
<
(2)实体Bean类
package"serial")
@Entity
@Table(name="Student")
publicclassStudentimplementsSerializable{
privateIntegerstudentid;//学号
privateStringname;//姓名
privatebooleansex;//性别
privateShortage;//年龄
privateDatebirthday;//出生日期
privateStringaddress;//地址
privateStringtelephone//电话
@Id
@GeneratedValue
publicIntegergetStudentid(){
returnstudentid;
}
publicvoidsetStudentid(Integerstudentid){
=studentid;
}
@Column(name="name",length=50)
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
@Column(nullable=false)
publicbooleangetSex(){
returnsex;
}
publicvoidsetSex(booleansex){
=sex;
}
@Column(nullable=false)
publicShortgetAge(){
returnage;
}
publicvoidsetAge(Shortage){
=age;
}
publicDategetBirthday(){
returnbirthday;
}
publicvoidsetBirthday(Datebirthday){
=birthday;
}
@Column(name="address",length=100)
publicStringgetAddress(){
returnaddress;
}
publicvoidsetAddress(Stringaddress){
=address;
}
@Column(name="telephone",length=20)
publicStringgetTelephone(){
returntelephone;
}
publicvoidsetTelephone(Stringtelephone){
=telephone;
}
}
四、结果
五、分析总结
J2EE是一个规范,而不是一个产品。
J2EE定义了当人们写企业级软件时必须遵守的准则。
J2EE是3个不同版本的JAVA平台中的一个,每一个平台都是更小的一个平台的要领上的超集。
1、EJB
EJB容器最重要的职责是提供一个EnterpriseBeans可以运行的环境。
EJB容器装载EnterpriseBeans,并且使得客户端程序能进行远程调用。
从本质上讲,EJB容器是客户端程序和Beans之间看不见的中间人。
它们负责将客户端程序连接到Beans。
执行事务协调,提供数据存储,管理Bean的生命周期等。
EJB容器就好比剧院里的幕后舞台总监,为在舞台上表演的演员能成功地演出而提供所需灯光和背景。
不论是演员还是观众都不直接与舞台总监进行直接交互,这对于EJB容器来说也是同样适用的。
调用Bean的客户端程序从不直接对EJB容器API进行编码。
2、SessionBean
会话Bean代表的是调用它的客户程序所完成的工作,会话Bean是商务过程对象。
它们执行商务逻辑、商务规则、算法和工作流程。
无状态会话Bean:
只能保留单一对话内容,它们没有状态是因为它们不与客户端程序进行多方对话。
状态会话Bean:
当有多个客户端调用时,通过调度池调度实现Bean的钝化与激活。
3、EntityBean
实体Bean实例是一个对应到数据库中的视图。
在我们的编程中,我认为SessionBean主要的工作是完成业务逻辑方面的工作。
具体的讲如:
在它里面你可以通过它调用实体Bean与数据库之间建立映射,并完成SQL语句的编写,并与客户端进行交互。
EntityBean主要通过与数据库之间的映射,完成与数据库的交互,它自动生成一个主键查询,通过一个主键的唯一标识来唯一的定位一条数据,并把数据存储在一个存储空间中。
EntityBean里还有一个定位器方法,它通常用来在存储空间中查询一个已存在的实体Bean。