大数据库系统实验报告材料--图书馆管理系统oracle+java.pdf
《大数据库系统实验报告材料--图书馆管理系统oracle+java.pdf》由会员分享,可在线阅读,更多相关《大数据库系统实验报告材料--图书馆管理系统oracle+java.pdf(23页珍藏版)》请在三一文库上搜索。
1、实用文案 文案大全 湖南科技大学 数学与计算科学学院 数据库系统 课 程 设 计 课程设计题目:图书馆管理系统 指导教师:刘*芳 学生院系:数学学院 学生班级:信计*班 学生姓名:黎*文 学生学号:14070204* 实用文案 文案大全 目录 一、任务书. - 1 - 二、相关技术与环境介绍 . - 1 - 三、需求分析. - 1 - 四、概念结构设计 . - 2 - 五、逻辑结构设计 . - 4 - 六、数据库实施. - 5 - 6.1 数据库的建立和表空间的建立 . - 5 - 6. 2 数据库用户的建立 - 6 - 6.3 java前端编程 . - 7 - 6.3.4 功能完善 . -
2、12 - 七、系统测试方案和测试报告 - 12 - 八、系统的主要功能和使用说明 - 13 - 8.1 功能说明: - 13 - 8.2 使用说明 - 13 - 8.3 图书管理系统数据库安全: . - 14 - 九. 系统安装说明. - 14 - 9.1 数据库的安装 - 15 - 9.2 java前端程序的安装 - 15 - 十. 课程设计心得. - 15 - 10.1 实验心得 . - 15 - 10.2 总结 . - 15 - 实用文案 文案大全 一.任务书 1. 题目:图书馆管理系统 2. 内容及要求: (1)创建数据库存储信息 (2)开发 java 前端程序,使用数据库。 (3)具
3、有实际应用价值 3. 实验成员分工: 黎*文:主要负责物理结构,数据库实施,数据库与前端的连接处理操作。 沈*杰:主要负责系统界面、概念与逻辑结构的设计,并进行维护调试。 二. 相关技术与环境介绍 开发工具: oracle 11g ,Eclipse 4.5 开发语言: Java 开发环境: JDK 1.8 运行环境: Windows 10 其他辅助工具: PowerDesigner165,edrawmax 核心技术: JOBC 对数据库的操作, java 操作界面的设计,各种布局方式和插件 (1)使用 JFrame控件进行界面设计 (2)使用静态字段实现窗体间的数据传递 (3)使用代码方式向容
4、器控件中添加控件 (4)数据库连接和前台操作 (5)数据库和开发工具之间的编码转换 三. 需求分析 图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能 进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。一个 典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息, 还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书的借阅,归 还进行管理, 并对读者的罚款进行自动计算。通过该系统的自动化管理, 能够大 实用文案 文案大全 大减少图书馆管理人员, 还能减少管理人员的工作任务,从而降低管理开销和成 本。一个完整的图书馆管理系统包括前台和后台
5、,前台主要是显示在计算机屏 幕上的显示界面, 有各种指令按钮, 操作框以及文本框, 后台主要是为前台的一 些操作提供一些必要的数据, 也就是一个相对于系统比较完整的数据库,操作员 以及各类图书的信息,借书者的信息等等。 此次的图书馆管理系统有如下几个重要功能: (1)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理 包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加, 删除,修改。管理员管理包括管理员信息的添加,删除,修改等。 (2)管理员可以修改自己的以及用户密码,修改前需先核实自己的原始 密码。 (3)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便
6、 性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户 做选择就可以。 (4)如果出现超期未还的情况, 能够就做出记录, 并作出相应处罚处理。 四. 概念结构设计 4.1 E-R图的设计 (1)学生 E-R图: 学 号 借书权限 姓 名 学生 联系方式年 龄 专 业 登录密码 性 别 实用文案 文案大全 M (2)管理员 E-R图: (3):图书 E-R图: (4)数据库关系图: 权 限 管理员 密 码 名 称 名 称 购买时间出版社 图书 是否预约 作 者 是否借阅 书 号 管理员 管 理 N 学生用户 M N M 管 理 M 管 理 N N 图书 管 理 1 管 理 超级
7、管理员 管 理N 1 1 实用文案 文案大全 (5)系统逻辑图: 4 .2 数据库的设计 (1)建立 orcl数据库 (2)建立 LIBRARYTEST表空间 (3)在表空间中建立用户libadmin,进行权限的设置,为最高权限 (4)登录 libadmin用户,创建libstudent用户,只具有查询的权限 (5)根据 4.1 中( 4)图建立7 个表。 五. 逻辑结构设计 1 . 图书( BOOK )的逻辑结构: 2. 超期图书( ECEEDTIME): 实用文案 文案大全 3. 丢失图书( LOSERBOOK): 4. 管理员权限表( MSANAGER): 5. 预约图书: 6. 借阅记
8、录: 7. 学生用户: 以上为各种表的逻辑结构。 六. 数据库实施 6.1 数据库的建立和表空间的建立 直接在 oracle 数据库 OEM 企业管理其中直接操作。界面化操作省略。 实用文案 文案大全 6. 2 数据库用户的建立 (1)/ 创建 libadmin用户: conn system /Kyq020520 /登录 system 超级用户 create user libadmin identified by 123456 default tablespace LIBRARYTEST grant create session,resource to libadmin grant creat
9、e user,resource to libadmin (2)/ 创建 libstudent用户 conn system /Kyq020520 /登录 libadmin 用户 create user libstudent identified by 123456 default tablespace LIBRARYTEST grant create session,resource to libstudent (3) 部分权限分配 GRANT ALTER ON “LIBRARYTEST“.“BOOK“ TO “LIBADMIN“ WITH GRANT OPTION GRANT DELETE O
10、N “LIBRARYTEST“.“BOOK“ TO “LIBADMIN“ WITH GRANT OPTION GRANT INDEX ON “LIBRARYTEST“.“BOOK“ TO “LIBADMIN“ WITH GRANT OPTION GRANT INSERT ON “LIBRARYTEST“.“BOOK“ TO “LIBADMIN“ WITH GRANT OPTION GRANT REFERENCES ON “LIBRARYTEST“.“BOOK“ TO “LIBADMIN“ WITH GRANT OPTION GRANT SELECT ON “LIBRARYTEST“.“BOOK
11、“ TO “LIBADMIN“ WITH GRANT OPTION GRANT UPDATE ON “LIBRARYTEST“.“BOOK“ TO “LIBADMIN“ WITH GRANT OPTION (4)初始数据的插入 给出一个学生表的建立和插入代码: create table student ( StuNO int primary key, StuName varchar(50), StuAge int, StuSex varchar(50), Class varchar(50), Department varchar(50), Tel char(11), Permitted var
12、char(50), Password varchar(20) ); insert into student values(10001,陈小诗 ,20,女,计算机1 班,计算机 系,2592921,是,number1); insert into student values(10002,李飞 ,21,女,计算机1 班,计算机系 ,13730120123,是,number2); insert into student values(10003,孙亚 ,20,男,计算机1 班,计算机系 ,13633654578,是,number3); 实用文案 文案大全 insert into student va
13、lues(10004,何二 ,22,男,计算机1 班,计算机系 ,2568975,是,number4); insert into student values(10005,唐雨 ,21,女,计算机1 班,计算机系 ,13936968956,是,number5); insert into student values(10006,宋江 ,20,男,计算机2 班,计算机系 ,1234667,是,number6); 6.3 java前端编程 6.3.1 数据库连接类DataBase: package com.listen; import javax.swing.*; import java.sql.
14、*; public class DataBase Connection con=null;/ 声明 Connection 引用 Statement stat; ResultSet rs; int count; String sql; public static String message;/ 声明一个静态成员变量 public static Login log; public DataBase(String user,String passWord) try/ 加载 orac 的驱动类,并创建数据库连接 Class.forName(“oracle.jdbc.driver.OracleDriv
15、er“); con = DriverManager.getConnection(“jdbc:oracle:thin:“ + “127.0.0.1:1521:orcl“,user,passWord); stat=con.createStatement();/ 创建 Statement 对象 catch(Exception e)/ 如果从 Login 类传的参数不对,则提示出错 JOptionPane.showMessageDialog(log,“用 户IP或 端 口 号 错 误 ! “+“ 信 息 “,JOptionPane.INFORMATION_MESSAGE); public void s
16、electDb(String sql)/声明 select 方法 try rs=stat.executeQuery(sql); catch(Exception ie)ie.printStackTrace(); public int updateDb(String sql)/声明 update 方法 try /因为 oracle 数据库的默认编码方式是gbk,而 eclipse 的默认编码方式也是 gbk,所以不存在转码问题 / sql = new String(sql.getBytes(),“ISO-8859-1“);/转码 实用文案 文案大全 / sql = new String(sql.g
17、etBytes(),“UTF-8“); count=stat.executeUpdate(sql); catch(Exception ie)ie.printStackTrace(); return count; public void dbClose()/声明 close 方法 trycon.close(); catch(Exception e)e.printStackTrace(); public static void main(String args) DataBase app = new DataBase(“libadmin“, “Kyq020520“); try app.rs = a
18、pp.stat.executeQuery(“select * from STUDENT“); while (app.rs.next() /转化数据类型 System.out.print(app.rs.getString(“STUNO“) + “ “); System.out.println(app.rs.getString(“STUNAME“) + “ “); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace() 6.3.2 登录界面的设计 登 陆 窗 体的 界面 设 计 我 依 然 采 用的
19、是 比 较 传 统 的 方法 ,新 建 一 个 类 BookLoginFrame 类,用来显示登录窗体。在该窗体中需要使用到四类控件,分 别是 JLabel 、JTextFieid 、JPasswordField 以及 JButton 。其中控件 JLabel 是 用来显示顶部的图片以及标签文本; 控件 JTextFieid用来接收用户名输入信息; 控件 JPasswordField 用来接收密码输入信息;控件JButton 用来创建登陆和重 置按钮。 实用文案 文案大全 定义一个 Login 类。 设计结果如下: 6.3.3 管理员操作界面 在主窗体中可以显示其他功能窗体, 所以需要在该窗体
20、中加入一个桌面窗体。 通过将其他功能窗体加入到该窗体中。从而实现多窗体显。同时在主窗口体中, 还需要添加一个main 方法,该方法为系统入口的方法,通过执行该方法来执行 系统。 这儿给出他的构造函数: 管理面界面操作构造函数: public Root(String mgNo) this.mgNo=mgNo;/ 获得管理员ID mg=new Manager(mgNo);/ 创建管理员管理面板 this.setManager();/ 设置管理员权限 this.initJp();/ 初始化卡片布局面板 this.addTreeListener();/ 为树节点注册事件监听器 for(int i=1;
21、i9;i+) /向根节点添加子节点 dtm.insertNodeInto(dmtni,dmtn0,i-1); jt.setEditable(false);/ 设置该树中节点是可编辑的 this.add(jsplr);/ 将包含树的滚动窗口添加进窗体 jsplr.setLeftComponent(jt);/将包含树的滚动窗口添加进左边的子窗口 jp.setBounds(200,50,600,500);/ 为 jp 设置大小位置并添加进右边的子窗口 jsplr.setRightComponent(jp); jsplr.setDividerLocation(200);/设置分隔条的初始位置 jspl
22、r.setDividerSize(4);/ 设置分隔条的宽度 jlRoot.setFont(new Font(“Courier“,Font.PLAIN,30); jlRoot.setHorizontalAlignment(JLabel.CENTER); 实用文案 文案大全 jlRoot.setVerticalAlignment(JLabel.CENTER); /设置窗体的关闭动作,标题,大小,位置及可见性 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Image image=new ImageIcon(“ico.gif“).getIm
23、age(); this.setIconImage(image); this.setTitle(“ 图书管理系统 “); /设置窗体首次出现的大小和位置-自动居中 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int centerX=screenSize.width/4; int centerY=screenSize.height/4; int w=800;/ 本窗体宽度 int h=600;/ 本窗体高度 /this.setBounds(centerX,centerY ,w,h); this.setBou
24、nds(centerX-w/2,centerY-h/2-100,w,h);/设置窗体出现在屏幕中央 this.setExtendedState(JFrame.MAXIMIZED_BOTH);/窗体全屏 this.setVisible(true);/ 设置窗体可见 jt.setShowsRootHandles(true);/ 设置显示根节点的控制图标 测试后界面如下: 6.3.4 学生用户界面: 和管理员界面设计类类似,但是由于学生权限的限制,所以学生用户部分功 能不能使用,构造方法也是类似,简单给出构造函数。 public StudentSystem() this.initJp(); jt.a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 报告 材料 图书馆 管理 oracle java
链接地址:https://www.31doc.com/p-5488879.html