JAVA+SQL图书馆管理系统课程设计



《JAVA+SQL图书馆管理系统课程设计》由会员分享,可在线阅读,更多相关《JAVA+SQL图书馆管理系统课程设计(44页珍藏版)》请在装配图网上搜索。
1、毕业设计(论文) 题目: 图书馆管理系统 姓 名 学 号 专 业 计算机科学与技术 指导教师 2 目录 摘要 IV 前言 V 第一章 图书馆管理系统分析 1 1.1 需求分析 1 1.2 功能分析 2 1.3 系统用例图设计 2 1.4 绘制系统流程图 3 1.5 系统的开发环境 4 第二章数据库分析与设计 5 2.1 数据库分析 5 2.2 数据库概念设计 5 2.3 数据逻辑结构设计 7 2.4 各表之间的联系图 9 第三章系统设计与功能实现 10 3.1 数据库Dao类的构建 10 3.2 系统登
2、录模块 11 3.3 主窗体模块 13 3.4 图书类别管理模块 15 3.5 图书信息管理模块 17 3.6 读者信息管理模块 21 3.7 图书订购管理模块 24 3.8 图书借阅管理模块 27 3.9 系统维护模块 30 第四章系统测试 35 4.1 测试项目 35 4.2 测试用例 35 结束语 37 参考文献 38 iii 图书馆管理系统 摘要 图书馆管理系统是采用Java做前台,后台数据库则采用的是 SQL Server 2005,本系 统提供6个功能模块,分别是图书类别管理模块、图书信息管理模块、读者信息管理模块、
3、 新书订购管理模块、图书借阅模块,以及系统维护模块。这 6个模块里又有许多子模块, 通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。 图书馆管理系统是一个供内部人员使用的系统。而图书馆的工作人员也分为两类,一 类是操作人员,主要负责图书的借阅和归还的工作;一类是管理员,除了操作人员的所有 功能外,还能够对书籍列表、书籍信息、读者信息等进行管理。 论文将全面介绍所设计的图书馆管理系统的系统功能和业务流程,并对系统进行详细 的数据分析和设计,最终使用Java完成系统开发。 关键词:图书馆管理系统,SQL Server 2005, Java 5 刖百 随着社会的发展,人
4、们对于知识的需求也在不断地增长。书籍作为人们获取并增长知 识的主要途径,使得图书馆在人们生活中占有了一定位置。但是近几年来,随着书量的不 断增长,造成了书库空间极度不足,图书挤压,管理不善。这些都直接影响了读者对图书 馆藏书的充分利用。这时图书馆就特别需要开发一套图书馆管理系统,通过该系统来提高 图书馆的管理效率,从而减少管理方面的工作流和成本。 一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互 作用产生的借书信息,还书信息。面对图书馆数以万计的图书,纷繁复杂的读者信息,频 繁更替的借还书信息,传统的直接方法不但管理出现漏洞, 造成损失。因此有一个智能化、 系统化、
5、信息化的图书管理系统十分重要的。充分利用计算机的功能实现对读者管理、书 籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱。方便友好的图形界面、 简便的操作、完善的数据库管理。将会使得图书馆系统极大限度的应用于现代化图书管理 中。 第一章图书馆管理系统分析 1.1 需求分析 图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行 整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。一个典型的图书馆 管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信 息的检索查询功能。该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款
6、进 行自动计算。通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人 员的工作任务,从而降低管理开销和成本。 一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示 界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要 的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者 的信息等等。 一个最基本的图书馆管理系统要有如下几个重要功能: (1)用户在借书超期的情况下得到来自管理员的提醒。 (2)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信 息以及图书分类的添加,修改,删除。用户管
7、理包括用户信息的添加,删除,修改。管理 员管理包括管理员信息的添加,删除,修改等。 (3)用户和管理员可以修改自己的密码,修改前需先核实自己的原始密码。 (4)未注册用户(游客)也可以浏览所有的图书信息和分类信息,但是无法借阅。 (5)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经 常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。 (6)考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书, 程序自动跳转该分类图书查看。删除某个用户,如果存在借书记录则不允许删除,跳转到 该用户的借书记录。等待管理员确认该用户所借图书已经全
8、部归还之后才允许删除该用户 信息。 一个图书馆管理系统要是能实现以上的各种功能,那么这个图书馆管理系统也就算是 比较成功的一个系统了。 1.2 功能分析 根据以上需求分析,我所设计的图书馆管理系统有 6个功能模块,分别是图书类别管 理模块,图书信息管理模块,读者信息管理模块,新书订购管理模块,图书借阅模块以及 系统维护模块。其中各功能模块的具体说明如下: 图书类别管理模块:该模块主要负责管理图书馆的图书种类信息, 如图书种类的名称、 可借天数、罚款数目等信息。 图书信息管理模块:该模块主要负责管理图书馆的图书信息,如图书编号、图书名称、 作者、出版社等信息。 读者信息管理模块:该模
9、块主要负责管理图书馆的读者信息,如读者编号、读者信息、 证件号码、最大借书量等信息。 图书订购管理模块:该模块主要负责管理图书馆的新书订购信息、包括新书订购和验 收新书两个子模块。 图书借阅管理模块:该模块主要负责图书馆的书籍借阅和归还信息,包括图书借阅、 图书归还、图书搜索3个子模块。 系统维护模块:该模块主要负责图书馆的工作人员信息,包括用户管理和更改系统口 令两个子模块。 1.3 系统用例图设计 图书馆管理系统是一个内部人员使用的系统,也就是说不是所有的人都能够使用它, 只有图书馆的工作人员才能使用。而图书馆的工作人员也分为两类,一类是操作人员,主 要负责图书的借阅和归还的工作
10、;一类是管理员,除了操作人员的所有功能外,还能够对 书籍列表,书籍信息,读者信息等进行管理。下面以管理员为例绘制其所对应的用例图如 图1.1所示。 1.4 绘制系统流程图 本系统首先需要对用户的身份进行识别,只有合法的用户才能进入系统,否则将无法 进入系统。进入系统后,首先打开系统主窗体,在系统首页的菜单栏或者功能区可以选择 各种导航链接来进行各种操作。由于不同权限的用户对于系统有不同的功能,下面以功能 最多的管理员为例,其系统流程图如图 1.2所示。 图1.2系统流程图 图书类别管理 系统维护 用户 管理 者息加 读信添 书息改 图信修 书息加 图信添
11、 书别改 图类修 书别加 图类添 1.5 系统的开发环境 图书馆管理系统的具体开发环境要求如下: (1)系统开发平台:Eclipse 34 (2)数据库管理系统软件:SQL Server 200s (3)运行平台:Windows 7。 (4) Java开发包:JDK 5.0以上。 (5)分辨率:800>600以上。 (6) GUI 开发包:Swing。 16 第二章数据库分析与设计 6.1 数据库分析 在开发图书馆管理系统时,考虑到图书量大,数据库维护大的特点,选用 SQL Server 2005作为数据库管理系统。在 SQL Server 2005中新增一
12、个数据库,其数据库名为 db_library。数据库中可以包含图书信息、图书类别信息、图书借阅信息、操作员信息、图 书订购信息及读者信息等实体,用来存储不同的信息。 6.2 数据库概念设计 本系统一共设计规划出6个实体,分别是图书类别信息实体、图书信息实体、读者信 息实体、操作员实体、图书借阅信息实体以及图书订购信息实体。 图书的类别有很多,因此可以建立一个图书馆类别信息表,专门用来保存图书的类别 信息。同时因为每种类别的书籍阅读时间有所不同,所以需要在类别表中保存该类别可借 天数信息。图书类别信息实体 E-R图如图2.1所示。 图2.1图书类别信息实体 E-R图 对于图书馆
13、来说最重要的就是要管理其下的书籍,所以需要建立一个图书信息表,用 来保存图书的所有信息。图书信息实体 E-R图如图2.2所示 图2.2图书信息实体 E-R图 要想在图书馆借书首先需要进行登记并交付押金。领取读书卡才能借书。所以需要建 立一个读者信息表来保存图书馆的所有读者的登记信息。读者信息实体 E-R图如图2.3所 示。 图书馆里一般有一个以上的系统操作员,需要建立一个操作员信息表,用来保存操作 员的身份信息。操作员信息实体 E-R图如图2.4所示。 图书馆最大的功能就是能够借书,这时需要建立一个图书借阅信息表,用来保存读者 的借书信息。图书的借阅信息实
14、体 E-R图如图2.5所示。 图书馆除了借书,还需要到出版社或其他代理商订购新书,这是需要建立一个图书订 购信息表,用来保存所有的订购信息。图书订购信息实体 E-R图如图2.6所示。 图2.6图书订购信息实体 E-R图 6.3 数据逻辑结构设计 根据设计好的各实体E-R图创建数据库的逻辑结构,数据库各表的结构如下: (1)图书类别信息采表用来储存所有的图书类别信息,包括图书类别编号、图书类别名 称、可借天数以及迟还一天的罚款数目 4个字段。该表的逻辑结构如表 2.1所示。 表2.1图书类别信息表 id 整数(int) 是 图书类别编号 ty
15、peName ( varchar) 否 图书类别名称 days 整数(int) 否 可借天数 fk 迟还一天的罚款数目 (2)图书信息表用来储存所有的图书信息,包括图书编号、类别编号、图书名称、作者、 译者、出版社、出版日期以及书籍价格 8个字段。该表的逻辑结构如表 2.2所示。 表2.2图书信息表 ISBN 文本(varchar) 是 图书编号 typeId 整数(int) 否(外键) 类别编号 bookname ( varchar) 否 图书名称 writer ( varchar) 否 作者 transla
16、tor ( varchar) 否 译者 publisher ( varchar) 否 出版社 date 日期时间(datetime) 否 出版日期 price money 书籍价格 (3)读者信息表用来储存所有的读者信息,包括读者姓名、性别、年龄、证件号码、会 员证有效日期、最大借书量、电话号码、押金、证件类型、职业、读者编号以及办证日期 12个字段。该表的逻辑结构如表 2.3所示 表2.3读者信息表 键 name 文本(varchar) 是 读者姓名 sex ( varchar) 否(外键) 读者性别 a
17、ge 整数(int) 否 读者年龄 identityCard ( varchar) 否 证件号码 date 日期时间(datetime) 否 会员证有效日期 maxNum 整数(int) 否 取大怎书里 tel ( varchar) 否 电话号码 keepMoney 金钱货币(money) 否 押金 zj 整数(int) 否 证件类型 zy ( varchar) 否 职业 ISBN ( varchar) 是 读名编p bztime datetime 否 办证日期 (4) 操作员
18、信息表用来保存操作员信息, 包括操作员编号、用户名、 性别、年龄、证件 号码、 工作时间、 电话号码、是否为管理员 、密码 9个字段。该表的逻辑结构如表 2.4 示。 表2.4操作员信息表 字段名 键 描述 id 整数(int) 是(自动递增) 操作员编号 name ( varchar) 否 用户名 sex ( varchar) 否 性别 age 整数(int) 否 年龄 identityCard ( varchar) 否 证件号码 workdate 日期时间(date
19、time) 否 工作时间 tel ( varchar) 否 电话号码 admin 整数(int) 否 是否为管理员 password varchar) 否 密码 (5) 图书借阅信息表用来保存所有图书的借阅信息,包括借阅编号、 书籍编号、操作员 编号、 读后编》、. 是够归还、借书日期以及应还日期 7字段。该表的逻辑结构如表 2.5 示。 表2.5 图书借阅信息表 字段名 数据类型 是否主键 描述 id 整数(int) 是(自动递增) 借阅编号 bookISBN ( varchar) 否(外键)
20、 书籍编号 operatorId 整数(int) 否(外键) 操作员编号 readerISBN varchar 读后编R isback int borrowDate 日期时间(datetime) 否 借书日期 backdate datetime 应还日期 (6)图书订购信息表用来保存图书馆的所有订购信息,包括书籍编号、订购日期、订购 数量、操作员、是否验收以及书籍折扣 6个字段。该表的逻辑结构如表2.6所示。 表2.6图书订购信息表 ISBn ( varchar) 是 书籍编号 date 日
21、期时间(datetime) 否 订购日期 number 整数(int) 否 订购数量 operator ( varchar) 否 操作员 checkAndAccep t 整数(int) 否 是否验收 zk 浮点 否 书籍折扣 6.4 各表之间的联系图 各表间的联系图如图2.7所示 固 tb_borrow 卜颂有现 id booklSCN operaiorld neaderTSBN 国 tb_operator 士厮有列D name 4 age 国tb_booklnfo 园 thqnd.r ,d date rxirrib
22、er operator dieckAndAccept jJ 啕f育列) ISBN typeld bookname witer 图2.7各表间联系图 国 tb bookType .唯族5现 typeName days ft 第三章系统设计与功能实现 3.1数据库Dao类的构建 首先定义了一个类Dao,并为该类添加了 4中方法,分别是构造方法 Dao、查询方法 executeQuery更新方法executeUpdate以及关闭连接方法 close。 public class Dao {
23、 protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//数据库连接驱动类 protected static String dbUrl = "jdbc:sqlserver://localhost:1433; + "DatabaseName=db_library;";//数据库连接 URL protected static String dbUser = "sa"; protected static String dbPwd = "123"; private sta
24、tic Connection conn = null; //数据库用户名 //数据库密码 //数据库连接对象 private static String ISBN; private Dao() { //构造方法 try { if (conn == null) { //如果连接对象为空 Class.forName(dbClassName); //加载驱动类 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);〃获得连接对 } } catch (Exception ee) { ee.printStackTra
25、ce(); } } private static ResultSet executeQuery(String sql) { 〃查询方法 try { if(conn==null) new Dao(); //如果连接对象为空,则重新调用构造方法 return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE).executeQuery(sql);/腴行查询
26、 } catch (SQLException e) { e.printStackTrace(); return null; //返回 null 值 } finally { } } private static int executeUpdate(String sql) { //更新方法 try { if(conn==null) new Dao(); //如果连接对象为空,则重新调用构造方法 return conn.createStatemen
27、t().executeUpdate(sql)蜿行更新 } catch (SQLException e) { e.printStackTrace(); return -1; } finally { } } public static void close() {//关闭方法 try { conn.close();//关闭连接对象 } catch (SQLException e) { e.printStackTrace(); }finally{ conn = null; //设置连接对象为null值 } } 3.2系统登录模块 3.1 对于图书馆管理系统而言,不
28、是所有的用户都是可以使用的,所有需要添加一个登陆 模块。通过该模块来对用户的合法性进行判断,只有合法的用户才能进入到系统。整个登 陆模块的实现非常简单,相信读者能够快速掌握其开发过程。登录模块的运行结果如图 所示。 图3.1系统登录界面 3.2.1 登陆窗体界面设计与实现 登陆窗体的界面设计我依然采用的是比较传统的方法,新建一个类 BookLoginFrame 类,用来显示登录窗体。在该窗体中需要使用到四类控件,分别是 JLabel、JTextFieid、 JPasswordField以及JButton。其中控件JLabel是用来显示顶部的图片以及标签文本;控件 JTextFie
29、id用来接收用户名输入信息;控件 JPasswordField用来接收密码输入信息;控件 JButton用来创建登陆和重置按钮。 3.2.2 操作员登陆 在Dao类中新增一个方法check,通过该方法来检测用户信息是否合法。该方法接收 两个参数,分别是操作员用户名 name,操作员密码passsward主要方法如下: public static Operater check(String name, String password) { Operater operater=new Operater();操作员信息对象 String sql = "select * from tb_op
30、erator where name='" + name + "' and password='" + password + "'and admin=1"; ResultSet rs = Dao.executeQuery(sql); try { while (rs.next()) { operater.setId(rs.getString("id")); operater.setName(rs.getString("name")); operater.setGrade(rs.getString("admin")); operater.setPassword(rs.getString("
31、password")); 3.3 主窗体模块 图书馆管理系统的主窗体模式是由三个部分组成的。第一部分是位于主窗体上组上端 的系统菜单栏,用来实现链接系统功能菜单。第二部分位于菜单栏下面的工具栏,用来提 供各种常用功能链接。第三部分位于工具下的系统功能窗口区域,主要用来显示各种功能 窗口。 3.3.1 主窗体界面设计 在主窗体中可以显示其他功能窗体,所以需要在该窗体中加入一个桌面窗体。通过将 其他功能窗体加入到该窗体中。从而实现多窗体显。同时在主窗口体中,还需要添加一个 main方法,该方法为系统入口的方法,通过执行该方法来执行系统。其主要代码如下: public class Libr
32、ary extends JFrame { private static final JDesktopPane DESKTOP_PANE = new JDesktopPane()以面窗体 public static void main(String口 args) { try { UIManager.setLookAndFeel(UIManager .getSystemLookAndFeelClassName());/设置系统界面外观 new BookLoginIFrame();//登录窗口 } catch (Exception ex) { ex.printStackTrace()
33、; } } public static void addIFame(JInternalFrame iframe) { // 添力口子窗体的方法 DESKTOP_PANE.add(iframe); //新增子窗体 } } 下面再来配置主窗体的其他属性,首先需要设置其大小和位置,然后还要设置其菜单 栏和工具栏,最后需要在桌面窗体中添加一个背景图片。其代码实现如下。 public Library。{ super(); setDefaultCloseOperation( //获得默认的工具箱 //获得屏幕的大小 //设置窗体大小 WindowConstants.EXIT_ON
34、_CLOSE);////设置关闭按钮处理事件 Toolkit tool = Toolkit.getDefaultToolkit(); Dimension screenSize = tool.getScreenSize(); setSize(800, 600); setLocation((screenSize.width - getWidth()) / 2, (screenSize.height - getHeight()) / 2); //设置窗体位置 setTitle("图书馆管理系统"); //设置窗体标题 JMenuBar menuBar = createMenu(); 〃
35、调用创建菜单栏的方法 setJMenuBar(menuBar); 〃设置菜单栏 JToolBar toolBar = createToolBar(); // 调用创建工具栏的方法 getContentPane().add(toolBar, BorderLayout.NORTH);/S 置工具栏 final JLabel label = new JLabel(); //创建一个标签,用来显示图片 label.setBounds(0, 0, 0, 0); //设置窗体的大小和位置 label.setIcon(null); // 窗体背景 DESKTOP_PANE.addComponentL
36、istener(new ComponentAdapter() {
public void componentResized(final ComponentEvent e) {
Dimension size = e.getComponent().getSize();康得组件大/」、
label.setSize(e.getComponent().getSize());改置标签大小 label.setText("37、tResource("/backImg.jpg")
+ "'>");//设置标签文本
}
};
DESKTOP_PANE.add(label,new Integer(Integer.MIN_\ALUE));// 将标签添加到桌面
窗体
getContentPane().add(DESKTOP_PANE);//1桌面窗体添力口至 U 主窗体中
}
3.3.2 主窗体菜单栏设计
在Library类中定义一个createMenu方法,在该方法中实现菜单栏的设计。具运行界 面如图3.2所示。
图书措I身
一互毛TZ空屋花
匐节布管理
图3.2主窗体界面
38、 3.4 图书类别管理模块 图书类别管理模块包含两个子模块,分别是图书类别添加和图书类别修改。其中图书 类别添加模块用来录入新的图书类别信息,图书列别修改模块用来修改已有的图书列别信 息。系统界面如图3.3所示。 17 图3.3图书类别修改界面 3.4.1图书类别添加模块 要添加图书类别信息,首先要在 Dao中添加一个InsertbookType方法,通过该方法来 接受用户输入的所有书籍类别信息,然后执行插入操作。其主要方法如下: public static int InsertBookType(String bookTypeName,String days,
39、double fk){ int i=0; try{String sql="insert into tb_bookType(typeName,days,fk) values('"+bookTypeName+"','"+days+"',"+fk+")"; i=Dao.executeUpdate(sql);/枚行插入操作 } } 3.4.2图书类别修改模块 修改图书类别信息同保存图书类别信息非常类似,首先在 Dao中添加一个方法 UpdatebookTypa通过该方法来接收图书修改表单中提交的书籍类别信息。其代码如下: public static int UpdatebookT
40、ype(String id,String typeName,String days,String fk){ int i=0; try{String sql="update tb_bookType set typeName='"+typeName+"', days='"+days+"',fk='"+fk+”' where id='"+id+"'"; 〃System.out.println(sql); i=Dao.executeUpdate(sql);例行更新操作 } } 修改图书类别信息,是通过单击修改按钮执行的,上面我们已经为修改按钮注册了一 个监听器,其对应的监听器类为 Bu
41、ttonActionLinter。下面来实现该监听器类,其实现代码 如下: class ButtonAddListener implements ActionListener{ public void actionPerformed(ActionEvent e){ Object selectedItem = bookTypeModel.getSelectedItem(); int i=Dao.UpdatebookType(BookTypeId.getText().trim(),selectedItem. toString(), days.getText().trim(),fk.get
42、Text().trim()); System.out.println(i); if(i==1){//如果返回值为1,则表示修改成功 JOptionPane.showMessageDialog(null,修改成功"); Object口□ results=getFileStates(Dao.selectBookCategory()); model.setDataVector(results,columnNames); table.setModel(model); } } } 3.5 图书信息管理模块 图书信息管理模块包含两个子模块,分别是图书信息添加和图书信息修改。其中图书 信
43、息添加模块用来录入新的图书信息,图书信息修改模块用来修改已有的图书信息。 3.5.1 图书信息添加界面设计 图书信息添加窗体一共包含三个部分,第一部分是位于窗体最上端的图片。第二部分 是位于中间的主面板,用来提供各种标签和表单元素。第三部分是位于主面板下的按钮面 板,用来提供添加和关闭两个按钮。具运行界面如图 3.4所示。 图3.4图书信息添加界面 主面板是整个窗体最重要也是最核心的部分,其部分实现代码如下: public BookAddIFrame() { super(); final BorderLayout borderLayout = new BorderLa
44、yout();〃仓建边框布局管理器 getContentPane().setLayout(borderLayout); 〃设置布局 setIconifiable(true);//设置窗体可最小化 setClosable(true);//设置窗体可关闭 setTitle("图书信息添加)//设置窗体标题 setBounds(100, 100, 396, 260);//设置窗体位置和大小 final JPanel mainPanel = new JPanel(//创建中心面板 mainPanel.setBorder(new EmptyBorder(5, 10, 5, 10));般置边框
45、final GridLayout gridLayout = new GridLayout(0, 4);// 创建表格布局管理器 gridLayout.setVgap(5);//设置组件之间垂直距离 gridLayout.setHgap(5);//设置组件之间平行距离 mainPanel.setLayout(gridLayout);/股置布局 getContentPane().add(mainPanel);将中心面板力口入至 U 窗体 final JLabel ISBNLabel = new JLabel(); //创建图书编号标签 ISBNLabel.setText("图书编号:")
46、;//设置标签文本 mainPanel.add(ISBNLabel);/傣力口至 ij 中心面板 ISBN = new JTextField(”请输入13位书号”,13);//创建书号文本框 ISBN.setDocument(new MyDocument(13)); //设置书号文本框最大输入值为 13 ISBN.setColumns(13);//设置文本框长度 ISBN.addKeyListener(new ISBNkeyListener());// 注册监听器 ISBN.addFocusListener(new ISBNFocusListener());/姓册监听器 main
47、Panel.add(ISBN); } 3.5.2 检测书籍编号是否已存在 因为不可能存在重复的书籍编号。为了防止操作员的操作错误,所以需要提供一个书 籍编号监测系统。如果该书籍号已存在,则不能进行添加,否则可以进行添加。 要检测书籍编号是否存在,需要在 Dao类中添加一个方法,该方法用来接收输入的书 籍编号,然后查询该书籍编号对应的书籍记录,其主要方法如下: public static List selectBookInfo(String ISBN) {// 根据图书编号查询图书 List list=new ArrayList();//保存所有查询到的书籍信息 String s
48、ql = "select * from tb_bookInfo where ISBN='"+ISBN+"”'; ResultSet rs = Dao.executeQuery(sql);执行查询 ……/师入数据,关闭连接 } 对书籍编号进行检测,一般是在操作员输入完书籍编号,并准备输入其他信息时来完 成。这是需要新建一个ISBNFFocusListener监听类,该类继承了 FocusAdoper类,并实现 其中的focusLost,其实现代码如下: class ISBNFocusListener extends FocusAdapter { public void focusLo
49、st(FocusEvent e){ if(!Dao.selectBookInfo(ISBN.getText().trim()).isEmpty()){ JOptionPane.showMessageDialog(null,添加书号重复!"); return; } } } 3.5.3 图书信息添加 要添加书籍信息,首先要在 Dao中添加一个Insertbook方法,通过该方法来接受用户 输入的所有书籍信息,然后执行插入操作。其主要方法如下: public static int Insertbook(String ISBN,String typeId,String bookname
50、, String writer,String translator,String publisher,Date date,Double price){ int i=0; try{ String sql="insert into tb_bookInfo(ISBN,typeId,bookname,writer,translator,"+ "publisher,date,price) values('"+ISBN+"','"+typeId+"','"+bookname+"',"+ "”'+writer+"','"+translator+"','"+publisher+"','"+date
51、+"',"+price+")"; i=Dao.executeUpdate(sql);/桢行插入操作 } } 3.5.4 图书修改信息 修改图书信息同保存图书信息非常类似, 首先在Dao中添加一个方法Updatebook。通 过该方法来接收图书修改表单中提交的书籍信息。其代码如下: public static int Updatebook(String ISBN,String typeId,String bookname, String writer,String translator,String publisher,Date date,Double price){ int i
52、=0;〃更新记录数 try{ String sql="update tb_bookInfo set ISBN='"+ISBN+"', typeId='"+typeId+"',bookname='"+bookname+"', writer='"+writer+"', translator='"+translator+”', publisher="'+publisher+”', date='"+date+"', price="+price+" where ISBN='"+ISBN+"”'; i=Dao.executeUpdate(sql);例行更新 } } 修改图书信息,是通过
53、单击修改按钮执行的,上面我们已经为修改按钮注册 了一个监听器,其对应的监听器类为 UpdateBookActionLinter。下面来实现该监听 器类,其实现代码如下: class UpdateBookActionListener implements ActionListener { public void actionPerformed(final ActionEvent e) { int i=Dao.Updatebook(ISBNs, bookTypes, bookNames, writer translators,publishers,Date.valueOf(pubDate
54、s),Double.parseDouble(prices)); if(i==1){//如果返回更新记录数为1,表示修改成功 JOptionPane.showMessageDialog(null,修改成功"); Object[][]results=getFileStates(Dao.selectBookInfo());//M 新获得书籍信息 DefaultTableModel model=new DefaultTableModel();〃获得表格模型 table.setModel(model);//设置表格模型 model.setDataVector(results, columnNam
55、es);改置模型数据和列名 } } } 3.6 读者信息管理模块 读者信息管理模块包含两个子模块,分别是读者信息添加和读者信息修改与删除。其 中读者信息添加模块用来录入新的读者信息,读者信息修改与删除模块用来修改和删除已 有的读者信息。其系统运行界面如图 3.5所示。 图3.5读者信息管理模块运行界面 3.6.1读者信息添加 要添加读者信息,首先要在 Dao中添加一个InsertReader方法,通过该方法来接受用 户输入的所有读者信息,然后执行插入操作。其主要方法如下: public static int InsertReader(String name,Strin
56、g sex,String age,String identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN){ int i=0; try{String sql="insert into tb_reader(name,sex,age,identityCard,date,maxNum, tel,keepMoney,zj,zy,bztime,ISBN)values('"+name+"','"+sex+"','"+age+"','"+ ide
57、ntityCard+"','"+date+"','"+maxNum+"','"+tel+"',"+keepMoney+",'"+zj+"' ,'"+zy+"', '"+bztime+"','"+ISBN+"')"; System.out.println(sql); i=Dao.executeUpdate(sql);例行插入操作 } 3.6.2读者信息修改与删除 修改与删除读者信息同保存读者信息非常类似,首先在 Dao中添加两个方法 UpdateReader及DelReader。通过这两个方法来接收图读者修改表单中提交的读者信息。 其主要代码如下: public stat
58、ic int UpdateReader(String id,String name,String sex,String age,String identityCard,Date date,String maxNum,String tel, Double keepMoney,String zj,String zy,Date bztime,String ISBN){ int i=0; try{String sql="update tb_reader set name='"+name+"',sex='"+sex+"', age='"+age+"',identityCard='"+identi
59、tyCard+"', date='"+date+"',maxNum='"+maxNum+"', tel='"+tel+"',keepMoney="+keepMoney+", zj='"+zj+"',zy='"+zy+"', bztime='"+bztime+"'where ISBN='"+ISBN+"”'; i=Dao.executeUpdate(sql);// 执行更新 }catch(Exception e){ e.printStackTrace(); } Dao.close();//关闭连接 public static int DelReader(String ISBN){
60、int i=0; try{ String sql="delete from tb_reader where ISBN='"+ISBN+"”'; //System.out.println(sql); i=Dao.executeUpdate(sql); }catch(Exception e){ e.printStackTrace(); } Dao.close();//关闭连接 } 3.7 图书订购管理模块 图书订购管理模块包含两个子模块,分别是新书订购和验收新书。其中新书订购模块 用来录入新的图书信息,验收新书模块用来验收新书信息。其系统运行界面如图 3.6和图 3.7所示。
61、 图3.6新书订购管理界面 图3.7图书验收界面 3.7.1 新书订购管理 要添加新书订购信息,首先要在Dao中添加一个InsertBookOrder方法,通过该方法来 接受用户输入的所有新书订购信息,然后执行插入操作。其主要方法如下: public static int InsertBookOrder(String ISBN,Date date,String number,String operator,String checkAndAccept,Double zk){ int i=0; try{String sql="insert into tb_orde
62、r(ISBN,date,number,operator,checkAndAccept,zk) values('"+ISBN+"','"+date+"','"+number+"','"+operator+"',"+checkA ndAccept+",'"+zk+"')"; i=Dao.executeUpdate(sql);/枚行插入 } } 3.7.2 图书验收 添加完图书订购信息后,我们还要对图书进行验收,首先要在 Dao中添加一个 SelectBookOrder方法,通过该方法来查找出所有录入的新书订购信息,再添加一个 UpdateCheckBookOrder方法,通过该方
63、法来对图书进行验收。其主要方法如下: public static List selectBookOrder(boolean b) { List list=new ArrayList(); String sql = "SELECT * FROM tb_order where ISBN='"+ISBN+皿; ResultSet rs = Dao.executeQuery(sql);执行查询 try { while (rs.next()) { Order order=new Order(); order.setISBN(rs.getString("ISBN")); order.se
64、tDate(rs.getDate("date")); order.setNumber(rs.getString("number")); order.setOperator(rs.getString("operator")); order.setZk("zk"); order.setCheckAndAccept("checkAndAccept"); list.add(order); } catch (Exception e) { e.printStackTrace(); Dao.close();//关闭连接 return list; public static int Upda
65、teCheckBookOrder(String ISBN){ int i=0; try{ String sql="update tb_order set checkAndAccept=0 where ISBN='"+ISBN+"”'; i=Dao.executeUpdate(sql);例行更新 }catch(Exception e){ e.printStackTrace(); Dao.close();//关闭连接 return i; } 3.8 图书借阅管理模块 图书借阅管理模块包含三个子模块,分别是新书借阅、图书归还和图书搜索。其中图 书借阅模块用来录入读者信息及所借阅的图书
66、的信息,图书归还模块用来显示归还读者信 息及所借阅的图书信息,图书搜索模块用来为读者提供图书搜索功能。其系统运行界面如 图3.8、3.9和3.10所示。 图3.8图书借阅管理界面 图3.9图书会还管理界面 图3.10图书查询界面 3.8.1 图书借阅 当读者想要对某图书进行借阅操作时,图书馆管理员必须将读者信息及所借阅的 图书信息输入到数据库,此时,需要在 Dao中添加一个InsertBookBorrow方法,通过 该方法录入读者信息及所借阅的图书信息。其主要方法如下: public static int InsertBookBorrow(String bookISBN,String readerISBN,String operatorId,Timestamp borrowDate,Timestamp backDate){ int i=0; try{String sql="insert into tb_borrow(bookISBN,readerISBN,operatorId, borrowDate,backDate)values C"+bo
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题党课讲稿:以高质量党建保障国有企业高质量发展
- 廉政党课讲稿材料:坚决打好反腐败斗争攻坚战持久战总体战涵养风清气正的政治生态
- 在新录用选调生公务员座谈会上和基层单位调研座谈会上的发言材料
- 总工会关于2025年维护劳动领域政治安全的工作汇报材料
- 基层党建工作交流研讨会上的讲话发言材料
- 粮食和物资储备学习教育工作部署会上的讲话发言材料
- 市工业园区、市直机关单位、市纪委监委2025年工作计划
- 检察院政治部关于2025年工作计划
- 办公室主任2025年现实表现材料
- 2025年~村农村保洁员规范管理工作方案
- 在深入贯彻中央8项规定精神学习教育工作部署会议上的讲话发言材料4篇
- 开展深入贯彻规定精神学习教育动员部署会上的讲话发言材料3篇
- 在司法党组中心学习组学习会上的发言材料
- 国企党委关于推动基层党建与生产经营深度融合工作情况的报告材料
- 副书记在2025年工作务虚会上的发言材料2篇