ImageVerifierCode 换一换
格式:DOCX , 页数:225 ,大小:793.49KB ,
资源ID:4677931      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4677931.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java数据库课程设计报告图书馆管理系统.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java数据库课程设计报告图书馆管理系统.docx

1、java数据库课程设计报告图书馆管理系统西安郵電大学数据库课程设计报告题目:图书管理系统 院系名称:计算机学院 专业名称:计算机科学与技术班 级:计科1006 学生姓名:*学号(8位):*指导教师:*设计起止时间:2012年10月8日2012年10月19日 一 问题的提出一、开发背景 很多高校都拥有图书馆,图书馆可以为全校师生提供一个阅读,学习的空间。近年来,随着生源不断增大,图书馆的规模也随之扩大,图书数量也相应地大量增加,有关图书馆各种信息成倍增加。面对如此庞大的信息量,校领导决定使用一套合理,有效,规范,实用的图书馆管理系统,对校内图书资料进行统一,集中的管理。本系统将会涉及到图书馆日常

2、管理工作的基本常见细节,诸如新图书的入库登记,图书馆所有书籍的分类管理,图书的查询,图书的借阅、退还手续的登记,费旧图书的清理撤除等,本系统所要实现的这些功能基本上涵盖了图书馆的日常管理工作,基本能够满足校园图书馆的工作人员的管理需要。在对本系统的具体开发过程当中,将采用Java语言进行开发,以Sql Server实现后台数据库,本系统是完全基于图形化用户界面(GUI)的单机版本。本系统的设计是在Windows 7简体中文版操作系统环境下,使用 Java中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有

3、各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统所使用的后台数据库是MS SQL2005数据库。本系统选用的开发语言介绍如下:选择了美国SUN公司推出的Java开发工具。Java 是第一个全面支持面向对象程序设计的数据库语言工具。Java的主要特点有:1、语言是简单的、小型的、结构中性的2、强大的数据库开发功能3、扩大了对SQL语言的支持4、是面向对象的、高性能的、多线程的5、是分布式的、面向网络6、具有平台无关性7、语言具有可移植性、是动态的二、需求分析 图书馆管理系统是图书馆管理工作中补课缺少的部分,对于图书馆的管理者和使用者来说都非常重要,但长期以来,

4、人们使用传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低。而一个成功的图书馆管理系统应提供快速的图书馆信息检索功能,快捷的图书借阅,归还流程,为管理者提供充足的信息和快捷的数据处理手段。从读者与图书馆管理员的角度出发,本着以读者借书,还书快捷,方便的原则,本系统有一下特点: :具有良好的系统性能,友好的用户界面。 :较高的处理效率,便于使用和维护。 :采用成熟的技术开发,使系统具有较高的技术水平和较长的生命周期。 :系统尽可能简化图书馆管理员的重复工作,提高工作效率。 :简化数据查询,统计难度。 二:系统设计一:系统目标 根据以上的需求分析及用户的沟通

5、,该系统应达到以下目标: :界面设计友好,美观。 :数据存储安全,可靠。 :信息分类清晰,准确。 :强大的查询功能,保证数据查询的灵活性。 :操作简单易用,界面清晰大方。 :系统安全稳定。 :开发技术先进,功能完备,扩展性强。 :占用资源少,对硬件要求低。 :提供灵活,方便的权限设置功能,使整个系统的管理分工明确。二:系统功能结构 图书馆管理系统分为四大功能模块,分为基础数据维护,图书借阅管理,新书订购功能,系统维护。本系统各个部分及其包括的功能模块如图: 三:系统预览 图书馆管理系统有多多个程序界面组成,以下是几个典型界面该界面用于将读者相关信息添加至数据库表中。该界面用于展示读者相关信息,

6、并且提供了参与删除读者信息。该界面主要实现新书订购功能。该界面主要实现新书验收功能。四:文件组织结构图书馆管理系统系统文件夹组织结构 四:数据库设计一:数据库概要说明SQL Server 2005 具有很强的完整性与课伸缩性,具有较低的价格与较高的性能。数据库的树形结构图如图所示: 二:数据库概念设计 根据以上对系统的需求分析,系统设计,本系统使用的数据库实体分别为图书信息实体,图书分类实体,图书订购实体,读者信息实体,操作员信息实体,图书借阅信息实体,库存信息实体1:图书信息实体 图书信息实体包括图书编号,类别编号,书名,译者,出版社,价格,出版时间等属性。图书信息实体的E-R图如图所示。

7、2:读者信息实体 读者信息实体包括条形码,姓名,性别,年龄,电话,押金,生日,职业,证件类型,办证日期,最大借书量,证件号码等属性,E-R图如图所示。3:图书借阅信息实体 图书借阅信息实体包括编号,图书编号,读者编号,操作员编号,是否归还,借阅日期,归还日期等属性。E-R图如图所示。 4:图书分类实体图书分类实体包括编号,类别名称等属性,E-R图如图所示。 图书分类 编号 类别名称 可借天数 罚款金额5:图书订购实体 图书订购实体主要包括图书编号,订购日期,订购数量,操作员,是否验收和折扣等属性。E-R图如图所示。 6:操作员信息实体 操作员信息实体主要包括编号,姓名,性别,年龄,身份证号,工

8、作日期,电话,是否为管理员和密码等属性。E-R图如图所示。7:库存信息实体库存信息实体主要包括编号,库存数量等属性。E-R图如图所示。 五:数据库逻辑设计1:tb_bookInfo(图书信息表)图书信息表包括图书编号,图书类别编号,书名,作者,译者,出版社,出版时间和价格等信息。2.tb_bookType(图书分类表)图书分类表包括编号,类别名称,可借天数和罚款金额等信息。3.tb_borrow(图书借阅表)图书借阅表包括,图书编号,读者编号,操作员编号,是否归还,借阅日期,归还日期等信息。4.tb_operator(操作员信息表)操作员信息表主要包括编号,姓名,性别,年龄,身份证号,工作日期

9、,电话,是否为管理员和密码等信息。5.tb_order(图书订购表)图书订购表主要包括图书编号,订购日期,订购数量,操作员,是否验收和折扣等信息。图书订购表以图书编号与图书信息表建立了关系。6.tb_reader(读者信息表)读者信息表包括条形码,姓名,性别,年龄,电话,押金,生日,职业,证件类型,办证日期,最大借书数量,证件号码等信息。7.tb_stockpile(库存信息表)库存信息表主要包括编号,库存数量等信息。库存信息表以库存编号与图书信息表建立了关系。六:数据库建模本系统数据库采用Power Designer软件建立数据库中各个表的关系,进行数据库的建模,以连接各个数据库,使数据库中

10、各个实体间建立联系。数据库中各个表间关系如图所示。 七:详细设计 一:公共模块设计1:数据库连接及操作类的编写 数据库连接及操作类通常包括连接数据库的方法getConnection,执行查询语句的方法executeQuery(),执行更新操作的方法executeUpdate(),关闭数据库连接的方法close()1:指定类Dao.java保存的包,并导入所需的类包。关键代码如下:package com.wsy.dao; /指定类的包名称/导入进行数据库连接时所使用的java.sql.Connection类import java.sql.Connection;/导入进行数据库连接时所使用的jav

11、a.sql.DriverManager类import java.sql.DriverManager;/导入进行数据库表查询时所使用的java.sql.Resultset类import java.sql.ResultSet;/导入进行数据库操作时捕捉异常使用的java.sql.SQLException类import java.sql.SQLException;2:在Dao.java类的构造方法中创建数据库连接操作。在此类中首先定义数据库连接驱动包名,数据库连接路径,数据库连接用户名,密码等静态变量,然后在构造函数中实现数据库连接操作。在数据库连接代码中需要添加try.catch关键字,捕捉数据库

12、连接时可能抛出的异常。关键代买如下:/定义驱动报名称protected static String dbClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver; protected static String dbUrl = jdbc:sqlserver:/localhost:1433; + DatabaseName=db_library;SelectMethod=Cursor;/定义数据库连接路径 protected static String dbUser = shining;/数据库连接用户名 protected static S

13、tring dbPwd = 1;/数据库连接密码 protected static String second = null; private static Connection conn = null;/定义一个数据库连接 private Dao() try /捕捉数据库连接异常 if (conn = null) /如果连接为空 Class.forName(dbClassName).newInstance(); /装载SQl Server驱动/获取数据库连接 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); Else /如果连

14、接不为空 return; catch (Exception ee) /返回 ee.printStackTrace(); /捕捉数据库连接异常 3.创建执行查询语句的方法executeQuery,其返回值为ResultSet结果集。首先需要初始化Dao对象,调用构造函数,从而获取数据库连接。executeQuery方法代码如下:private static ResultSet executeQuery(String sql) try if(conn=null) new Dao(); return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITI

15、VE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql); catch (SQLException e) e.printStackTrace(); return null; finally 4.创建执行更新操作的方法executeUpdate,它的返回值为int类型的整数,此返回值代表数据更新的操作是否成功,返回1代表称,不成功则返回-1,其关键代码如下:private static int executeUpdate(String sql) try if(conn=null) new Dao(); return conn.createStatement

16、().executeUpdate(sql); catch (SQLException e) System.out.println(e.getMessage(); /if(e.getMessage().equals(MicrosoftSQLServer 2000 Driver for JDBCSQLServerDELETE 语句与 COLUMN REFERENCE 约束 FK_TB_BORRO_REFERENCE_TB_BOOKI 冲突。该冲突发生于数据库 db_library,表 tb_borrow, column bookISBN。) return -1; finally 5.为了避免运行程

17、序时资源浪费,优化项目的运行速度,需要在完成数据库操作后,关闭数据库连接,其关键代码如下:public static void close() try conn.close(); catch (SQLException e) e.printStackTrace(); finally conn = null; 二:MenuActions类的编写通常激活同一个命令有多种方式,用户可以通过工具栏中的按钮或菜单选择特定的功能。在本系统中命令就是弹出内部窗体 Swing包提供了一个非常有用的机制来封装命令,并将其连接到多个事件源,这种机制就是Action借口。Action接口有如下方法:Public v

18、oid actionPerformed(ActionEvent e)Public Object getValue(String key)Public void putValue(String key,Object value)Public boolean isEnabled()Public void setEnabled(boolean b)Pubilc void addPropertyChangeListener(PropertyChangeListener listener)Pinlic void removePropertyChangeListener(PropertyListener

19、listener)在actinPerformed()方法执行“更改密码”窗体的弹出类中操作,关键代码如下:private static class PasswordModiAction extends AbstractAction /* * */ private static final long serialVersionUID = 1L; PasswordModiAction() putValue(Action.NAME,更改口令); putValue(Action.LONG_DESCRIPTION, 修改当前用户密码); putValue(Action.SHORT_DESCRIPTION

20、, 更换口令);/在“更改口令”提示中显示的文字 /putValue(Action.SMALL_ICON,CreatecdIcon.add(bookAddtb.jpg); /将图标存储到动作对象中 /setEnabled(false);/使动作禁用 public void actionPerformed(ActionEvent e) if (!frames.containsKey(更改密码)|frames.get(更改密码).isClosed() GengGaiMiMa iframe=new GengGaiMiMa(); frames.put(更改密码, iframe); Library.ad

21、dIFame(frames.get(更改密码); 三:限制文本框长度类编写在swing语言创建的窗体中,当JTextField组建创建时,可以指定文本框的宽度。但在JTextfield的构造器中设定的宽度并不是用户输入的字符个数上限,用户可以在文本框中输入一个更长的字符串,此时需要限制用户输入字符串的长度。创建此类的步骤如下:1,。创建MyDocument.java类,此类继承PlainDocument类。关键代码如下:Public class Mydocument extends PlainDocument2.在Mydocument.java类中创建了两个构造函数,其中一个是又参数的,另一个

22、是无参数的。关键代码如下:Public Mydocument(int newMaxLength Super(); Maxlength=newMaxlengyh;Public MyDocument() This(10);3.重载父类方法insertString(),在此方法中限定文本框允许输入字符串长度。关键代码如下:public void insertString(int offset,String str,AttributeSet a) Throws BadLocationExceptionIf (getLength()+str.length()maxLength) return;else

23、super.insertString(offset , str,a); 4.在程序设计中,当需要限制用户输入字符串长度时,可以用如下代码JTextfield textfield=new JTextfield(请输入13位书号,13);Textfield.setDocument(new MyDocument(13);四:描述组合框索引与内容类的编写在程序编写的过程中,经常会遇到组合框组件的应用。又是要在窗体中的组合框中显示具体内容,通常需要在数据库中存储此组合框的索引值,这时便需要使用一种数据结构将组合框中的内容与索引值联系在一起1.创建组合框组件的索引值与其对应的内容Item.java类,这个

24、类中不仅包含代表组合框索引的成员变量id和代表组合框内容的成员变量name,还包括两个成员变量的setXXX(),getXXX()方法。关键代码如下:package com.wsy.JComPz;public class Item public String id; public String name; public String getId() return id; public void setId(String id) this.id = id; public String getName() return name; public void setName(String name)

25、this.name = name; public String toString() return getName(); 2.创建MapPz.java类,使用Map关联组合框的索引与组合框的具体内容。关键代码如下:package com.wsy.JComPz;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.swing.JComboBox;import com.wsy.dao.Dao;import com.wsy.model.BookType;public class MapPz s

26、tatic Map map = new HashMap(); public static Map getMap() List list = Dao.selectBookCategory(); for (int i = 0; i list.size(); i+) BookType booktype = (BookType) list.get(i); Item item = new Item(); item.setId(booktype.getId(); item.setName(booktype.getTypeName(); map.put(item.getId(), item); return

27、 map; 3.上述代码中用到了Dao.java中的selectBookCategory()方法,此方法用于查询图书类别相关信息,首先将数据库查询的相关信息放入javaBean中,然后将javaBean对象添加到List集合中,最终将结果以List形式返回,关键代码如下:public static List selectBookCategory(String bookType) List list=new ArrayList(); String sql = select days from tb_bookType where typeName=+bookType+; ResultSet rs

28、= Dao.executeQuery(sql); try while (rs.next() BookType type=new BookType(); type.setDays(rs.getString(days); list.add(type); catch (Exception e) e.printStackTrace(); Dao.close(); return list; 4.在JLable上添加图片类的编写为了美化窗体,通常需要在窗体上添加图片,关键代码如下:package com.wsy.util;import .URL;import javax.swing.ImageIcon;i

29、mport com.wsy.Library;public class CreatecdIcon public static ImageIcon add(String ImageName) URL IconUrl = Library.class.getResource(/+ImageName); ImageIcon icon=new ImageIcon(IconUrl); return icon; 二:主窗体设计 主窗体的设计中,使用到JMenuBar类与JToolBar类来创建菜单栏与工具栏,菜单栏的创建比较简单,使用JMenuBar的构造函数初始化菜单栏即可。例如:JMenuBar menubar=new JMenuBar(); /创建菜单栏frame.setJMenu=new JMenu(menuBar); /将菜单栏放入顶层框架JMenu editMenu=new JMenu(图书类别管理); /在菜单栏

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1