版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理课程设计报告书课题名图书信息管理系统指导教师日 期目录23.1 可行性分析23.2 系统目标33.3 系统应该具备的功能33.4 系统结构图 4四、概念设计5五、逻辑设计9六、物理设计95.1 表命令95.2 表结构图13七、代码实现136.1 数据库连接 136.2 增加一条图书记录146.3 删除一条图书记录166.4 修改一条图书记录176.5 查询一条图书记录 18八、结束语22近年来,随着我国市场经济的迅速发展和人们生活水平的不断提高,以及 计算机的普及使用,图书馆藏书的数目逐渐增大,这也是挑战了图书管理方面 的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先
2、进的 图书管理系统,提高了图书馆的工作效率,为想要借书和还书的人提供更好的 服务。1、概述1.1开发目的图书信息管理工作面对大量的可模块化处理的信息,是当今信息革命的一 个重要阵地。我们小组开发图书管理信息系统就是采用现代化的信息管理方式 代替手工管理方式,提高图书管理工作效率,做到信息的规范管理,科学统计 和快速查询,让图书馆更好的为学校、社会服务。2、需求分析2.1 可行性分析2.1.1 技术可行性就技术力量来说,我们小组可以完成此次开发工作。开发过程中会出现许多问题,有我们预想之中的,也有一些没有在我们预想中,但我们有信心克服 一切困难。我们小组各成员已经学习了 MySQL SQL对网络
3、技术和操作系统也 有系统的了解,熟悉计算机原理,能解决常见的硬件故障和硬件选择。2.1.2 经济可行性目标系统开发需求比较低,加上具有成熟的软硬件环境,所以在软硬件的 支出上十分有限。而且,目标系统并不是十分的复杂,开发的周期较短,人员 有限。当系统开发完实际运行后,将很大程度上提高计算机的功能,在为使用 者带来便利的同时也为系统的进一步推广创造了条件。2.1.3 管理可行性整个系统由于是自行开发,自行使用,所以很方便管理使用2.2 系统目标图书管理信息系统是典型的信息管理系统,具开发主要包括后台数据库的建 立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性 和完整性强,数据
4、安全性好的库。而对于后者则要求应用程序功能完备,易使 用等特点。系统开发的总体任务是实现各种信息的系统化,规范化和自动化。2.3 系统应该具备的功能读者基本信息的输入,包括借书证编号、读者姓名、读者性别等。读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。书籍类别信息的查询、修改,包括类别编号、类别名称。书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出 版社名称、出版日期、登记日期。书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。借书信息的输入,
5、包括读者借书证编号、书籍编号、借书日期。借书信息的查询、修改,包括借书证编号、借书证编号、读者姓名、书籍编号、书籍名称、借书日期等。还书信息的输入,包括借书证编号、书籍编号、还书日期。还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、 书籍名称、借书日期、还书日期等。(11)超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍 编号,罚款金额。(12)超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书 籍名称,罚款金额等。(13)管理员管理:包括创建读者用户信息、删除读者用户信息、添加图书信息、删除图书信息 (14超级管理员管理:包括创建管理员用户
6、信息、删除管理员用户信息、创建读 者用户信息、删除读者用户信息、添加图书信息、删除图书信息。2.4 系统结构图(根据需求分析,图书信息管理系统的结构图如下:)图书管理系 I 3、概设计所要实现的功能设I计,可能建立它|(门之间的关系日fj信息实进而实现逻辑结构功能【、帮电子系统籍信息实体、借实体。类别实体图:匚、 一 乡 今, 鲁 L、 条<皆 、三g一条件查询H 举 二Ft书类管理书管理P噂理员管理 十章者管理读者信息实体图:/借书m<4超级篁理员管理员傣图置理读者姓管理员归还记录信出版社管理员读者借书总的信息实体E读者姓罚款空静大款遢第殳于(1)书籍类别(类别编号,类别名)(2
7、)读者(借书证编号,读者姓名,读者性别,读者种类,登记时期,可借书数,已借书数,逾期未还书数)(3)管理员(管理员编号,管理员姓名,管理员密码,管理员权限 )(4)超级管理员(管理员编号,管理员姓名,管理员密码,管理员权限 )(5)书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)(6)借阅(借书证编号,书籍编号,读者借书时间)(7)还书(借书证编号,书籍编号,读者还书时间)罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)5、物理设计表命令:(1)创建数据库CREATE DATABASE librarysystemON(NAME = librarys
8、ystem,FILENAME = 'd:librarysystem.mdf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )LOG ONNAME = 'library',FILENAME = 'e:librarysystem.ldf',SIZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB)(2)书本类别表建立create table book_style(bookstyleno varchar(30) primary key,bookstyle varchar(30)(3)创建书库表
9、create table system_books(bookid varchar(20) primary key,bookname varchar(30) Not null,bookstyleno varchar(30) Not null,bookauthor varchar(30),bookpub varchar(30),bookpubdate datetime,bookindate datetime ,isborrowed bit,foreign key (bookstyleno) references book_style (bookstyleno),(4)借书证表建立create ta
10、ble system_readers(readerid varchar(9)primary key,readername varchar(9)not null ,readersex varchar(2) not null,readertype varchar(10),regdate datetime,booktotal int,borrowednum int,overduenoreturnnum int)(5)借书记录表建立create table borrow_record(bookid varchar(20) primary key,readerid varchar(9),borrowda
11、te datetime,foreign key (bookid) references system_books(bookid),foreign key (readerid) references system_readers(readerid),)(6)还书记录表建立create table return_record(bookid varchar(20) primary key,readerid varchar(9),returndate datetime, foreign key (bookid) references system_books(bookid),foreign key (
12、readerid) references system_readers(readerid)(7)罚款单表建立create table reader_fee(readerid varchar(9)not null,readername varchar(9)not null ,bookid varchar(20) primary key,bookname varchar(30) Not null,bookfee smallmoney,borrowdate datetime,foreign key (bookid) references system_books(bookid),foreign ke
13、y (readerid) references system_readers(readerid)(8)管理员表建立create table system_Administrator(administratorid varchar(9)primary key,administratorname varchar(9)not null ,administratorpassword varchar(2) not null,administratorpermission varchar(10)(9)索引的创建create index bookstyle_index_style on book_style
14、(bookstyle)create index borrow_record_index_readerid on borrow_record(readerid)create index reader_fee_index_readerid on reader_fee (readerid)create index return_record_index_readerid on return_record(readerid)create index system_books_index_bookname on system_books(bookname)create index system_book
15、s_index_styleno on system_books(bookstyleno)create index system_books_index_bookauthor on system_books(bookauthor)表3-1 book_sytle书籍类别信息表表中列名数据类型可否为空说明bookstylenovarcharnot null(主键)种类编号bookstyleVarcharnot null种尖名称表3-2 system_readers读者信息表格表中列名数据类型可否为空说明readeridvarcharnot null(主键)读者借书证号readernamevarcha
16、rnot null读者姓名readersexvarcharnot null读者性别readertypevarcharnot nullregdatedatetimenull登记日期booktotalintnull可借书数borrowednumintnull已借书数overduenoreturnnumintnull逾期未还书数表3-3 system_book书籍信息表表中列名数据类型可否为空说明bookidVarcharNot null(主键)书籍编号booknameVarcharNot null书籍名称续表3-3bookstyleVarcharNot null书籍类别bookauthorVarc
17、harNot null书籍作者bookpubVarcharNull出版社名称bookpubdateDatetimeNull出版日期bookindateDatetimeNull登记日期isborrowedBitNot Null是否被借出表3-4 borrow_record 借阅记录信息表表中列名数据类型可否为空说明readeridVarcharNot null(外主键)读者借阅证编号bookidVarcharNot null(外主键)书籍编号borrowdateDatetimeNot null读者借书时间表3-5 return_record借阅记录信息表表中列名数据类型可否为空说明readern
18、ameVarcharNot null(外主键)读者借阅证编号readeridVarcharNot null(外主键)书籍编号returndatedatetimeNot null读者还书时间表3-6 reader_fee 罚款记录信息表表中列名数据类型可否为空说明readeridvarcharNot null读者借书证编号readernamevarcharNot null读者姓名bookidvarcharNot null(外主键)书籍编号booknamevarcharNot null书籍名称bookfeeSmallmoneyNot Null罚款金额borrowdatedatetimeNot Nu
19、ll借阅时间表 3-7system_Administrator管理员信息表表中列名数据类型可否为空说明administratoridvarcharnot null(主键)管理员编号administratornamevarcharnot null管理员姓名administratorpasswordvarcharnot null管理员密码administratorpermissionvarcharnot null管理员权限表 3-8 system_Super_Administrator 管理员信息表表中列名数据类型可否为空说明superadministratoridvarcha rnot null
20、(主键)管理员编号superadministratorna mevarcha rnot null管理员姓名superadministratorpavarchanot null管理员密sswordr码superadministratorpevarchanot null管理员权rmissionr限表结构图:6、代码实现1)数据库的连接:import java .sql.*;import javax .swing .JOptionPane;public class Querypublic static Connection conection = null;static Connection get
21、Connection() 连接MySQL数据库tryClass .forName("org .gjt.mm.mysql .Driver");/ 加载驱动conection = DriverManager .getConnectionSystem .out.println("数据库连接成功");catch(java .lang .ClassNotFoundException classnotfound) classnotfound .printStackTrace(); 驱动未找到catch(java .sql.SQLException sql)sql.p
22、rintStackTrace();/SQL执行时发生异常,打印栈信息return conection;2)增加一条图书记录:public static boolean Insert(Book aBook)Connection connect=getConnection();/得至 U 连接boolean res=false;try Statement stmt = connect .createStatement(); 查询集String sql = "select * from book where BID='"+aBook.getBID()+"”
23、9;ResultSet rs=stmt .executeQuery(sql);/ 执行 SQL 命令,返回结果集if (rs .next()/图书编号存在 res=false;JOptionPane .showMessageDialog(null," 学生信息插入失败,该学生ID 号 已 存 在 "," 警 告"JOptionPane .WARNING_MESSAGE);rs.close();stmt .close(); else /不存在String sqlString="insert into book values('"
24、+aBook .getBID()+"','"+aBook .getBname()+"','"+ aBook .getBauthor()+"','"+aBook .getPress()+"','"+ aBook .getBinfo()+"','"+aBook .getYear()+"-"+ aBook .getMonth()+"-"+aBook .getDay()+"&
25、#39;,'"+ aBook .getBclass()+"')"res =stmt .execute(sqlString);res=true;if(res) JOptionPane .showMessageDialog(null," 图书信息插入成功 "," 成 功"JOptionPane .INFORMATION_MESSAGE); rs.close(); else res=false;JOptionPane .showMessageDialog(null," 图书信息插入失败",&qu
26、ot;警告"JOptionPane .WARNING_MESSAGE);rs.close();catch (SQLException e) / 捕获异常res=false;System .out.print("Error loading Mysql Driver!");e.printStackTrace();return res;3)删除一条图书记录:public static boolean delBook(String bid)Connection connect=getConnection();boolean res=false;try Statement
27、stmt = connect .createStatement();String sql = "select * from book where Bid='"+bid+"'"ResultSet rs=stmt .executeQuery(sql);if (rs.next()String sqlString="delete from book whereBid='"+bid+"”'stmt .executeUpdate(sqlString);JOptionPane .showMessageDia
28、log(null,"图书信息删除成功","成功"JOptionPane .INFORMATION_MESSAGE);res=true;rs.close();stmt.close();elseJOptionPane .showMessageDialog(null," 图书信息删除失败,该图书 ID 号不存在","警告"JOptionPane .WARNING_MESSAGE);res=false;rs.close(); stmt .close();catch (SQLException e) JOptionPane
29、.showMessageDialog(null,"图书信息删除失败","成功"JOptionPane .INFORMATION_MESSAGE); res=false;System .out.print("Error loading Mysql Driver!"); e.printStackTrace(); return res;4)修改图书信息:public static boolean modifyBook(Book oldBook) Connection connect=getConnection();boolean flag=
30、false;try Statement stmt = connect .createStatement(); 查询集String sqlString="update book set Bname='"+oldBook .getBname()+”', Bauthor='"+oldBook .getBauthor() +”', Press='"+oldBook .getPress()+”', BInfo='"+oldBook .getBinfo()+”',BDate='&quo
31、t;+oldBook .getYear()+"-"+ oldBook .getMonth()+"-"+oldBook .getDay()+"',Bclass='"+ oldBook .getBclass()+”'where BID='"+oldBook .getBID()+"”' stmt .executeUpdate(sqlString);JOptionPane . showMessageDialog(null," 图书信息修改成功","成功”
32、,JOptionPane .INFORMATION_MESSAGE);flag=true;catch (SQLException e) / 捕获错误 JOptionPane .showMessageDialog(null,”图书信息修改失败告"JOptionPane .WARNING_MESSAGE);flag=false;System .out.print("Error loading Mysql Driver!");e.printStackTrace();return flag;5)修改一条图书记录并将结果用表格显示出来:public javax.swing
33、.ListSelectionModel;javax.swing .RowSorter; javax .swing .table .DefaultTableModel;javax .swing .table .TableRowSorter;class BookInfoQuery extends JFrameBorderLayout borderLayout1 = new BorderLayout();布局方式JSplitPane jSplitPane1 = new JSplitPane();/分割面板JScrollPane jScrollPane1 = new JScrollPane();滚动面
34、板,用于放置表格JPanel jPanel1 = new JPanel();/ 面板JTable jTable1 = new JTable();/ 表格DefaultTableModel tablemodel = null;/默认表格模型JPanel jPanel3 = new JPanel();/ 面板GridLayout gridLayout1 = new GridLayout();/网格布局方式JButton jBexit = new JButton();/ 退出按钮ListSelectionModel selectionMode=null;public BookInfoQuery(St
35、ring bID,String bname,String bauthor, String press, String bInfo,String year,String month,String day,String bclass) getContentPane() .setLayout(borderLayoutl);/ 设置布局方式String口 name = "图书编号”,"图书名称","作者","出版社","图书简介”,"出版时间",”类别String sqlStr = "sele
36、ct * from book where Year(BDate)>1900"if(bID!=null)查询时如果编号不为空sqlStr+=" and BID='"+bID+"”'if(bname!=null)查询时如果图书名不为空sqlStr+=" and Bname like '%"+bname+"%" 模糊查询if(bauthor!=null)/查询时如果作者不为空sqlStr+=" and Bauthor like'%"+bauthor+"%
37、'"/ 模糊查询if(press!=null)查询时如果出版社不为空sqlStr+=" and Press like '%"+press+"%”'模糊查询if(bInfo!=null)/查询时如果图书信息不为空sqlStr+=" and Binfo like '%"+bInfo+"%'"/ 模糊查询if(year!=null)/出版年份不为空sqlStr+=" and Year(BDate)"+year+” ”;/ 按条件查询if(month!=null)
38、/出版月份不为空sqlStr+=" and Month(BDate)"+month+” ”;/按条件查询if(day!=null)出版日不为空sqlStr+=" and Day(BDate)"+day+” "/按条件查询if(bclass!=null)/ 图书类别不为空sqlStr+=" and Bclass like '%"+bclass+"%'" 模糊查询sqlStr+=" order by BDate desc"/按出版日期降序排序ToTable bdt = ne
39、w ToTable();tablemodel = bdt .getTableModel(name,sqlStr);jTable1 .setModel(tablemodel);jTable1 . setAutoResizeMode(JTable .AUTO_RESIZE_SUBSEQUENT_COLUM N S);让其它的列也跟随变动jTable1 .setEnabled(true);/ 设置表格可用jTable1 .setCellSelectionEnabled(true);jTable1 .setBackground(Color . pink);/ 设置表格背景颜色selectionMode
40、=jTable1 .getSelectionModel();selectionMode .setSelectionMode(ListSelectionModel .SINGLE_SELEC TION);jTable1 .setRowHeight(24); 设置表格高度RowSorter<DefaultTableModel> sorterTableRowSorter<DefaultTableModel>(tablemodel)=newjTable1 .setRowSorter(sorter);表格排序过滤jScrollPanel .setHorizontalScrollBarPolicy(JScrollPaneHORIZONTAL_SCROLLBAR_ALWAYS);jScrollPanel .setVerticalScrollBarPolicy(JScrollPaneVERTICAL_SCROLLBAR_ALWAYS);jBexit.setText("退出)jBexit .
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精密不锈钢管购买合同
- 物业管理服务合同范例案例
- 物流理赔服务合同
- 宣传品采购合同样本集合
- 应季水果购销合同
- 法律咨询服务合同编写
- 房屋买卖居间合同样式
- 防震材料供需合同
- 商业美陈设计服务协议
- 防水工程保证书范文格式要求
- 责任险发展空间
- 2024年国家公务员考试《申论》真题(行政执法)及答案解析
- 中华人民共和国保守国家秘密法实施条例
- 2024秋期国家开放大学专科《液压与气压传动》一平台在线形考(形考任务+实验报告)试题及答案
- 2024-2025学年统编版(2024)道德与法治小学一年级上册教学设计
- 国开2024年秋《经济法学》计分作业1-4答案形考任务
- 生涯发展报告 (修改)
- 大学体育与体质健康(山东联盟)智慧树知到答案章节测试2023年中国石油大学(华东)
- 铸牢中华民族共同体意识学习PPT
- DB42T169-2022岩土工程勘察规程
- 化工设备基础知识
评论
0/150
提交评论