小型图书管理系统.ppt
小型图书管理系统图书管理系统需求描述 图书管理系统,基于图书数目不断增多,读者数量不断增长,对图书信息管理自动化和准确化要求日益强烈的背景下,为实现提高图书、读者信息管理工作效率和方便化而设计的该系统。主要功能:图书信息管理、读者信息管理、借阅/归还图书管理图书管理系统的环境图图书管理系统管理员管理请求信息图书信息读者信息读者情况(查询)图书情况(查询)借还书信息系统管理图书管理读者管理借还管理管理员用户信息读者信息权限信息权限信息读者信息表用户信息表管理员图书信息图书信息表借阅信息表借还信息读者情况查询读者查询图书图书情况1234权限信息用户注册用户注销用户查询密码修改用户信息表管理员用户信息用户名用户信息管理员查询命令用户情况用户密码和用户名注册成功注销成功1.系统管理1.11.21.41.3修改成功用户登录用户名和密码1.5登录系统成功图书入库图书注销图书查询图书信息修改图书信息表管理员图书信息图书编号图书信息管理员图书名称或作者图书情况图书编号入库成功注销成功2.图书管理2.12.22.42.3修改成功读者注册借书证注销读者查询读者信息修改读者信息表管理员读者信息读者编号读者信息管理员读者编号读者情况读者编号注册成功注销成功3.读者管理3.13.23.43.3修改成功借书证挂失3.5读者编号借书信息登记还书信息登记借阅查询图书续借借阅信息表管理员借阅信息还书信息图书信息管理员读者编号或图书编号借阅情况图书编号和读者编号借阅成功还书成功4.14.24.44.3续借成功超期罚款管理图书丢失超期信息罚款额丢失信息罚款额4.54.6图书信息表读者信息表罚款信息表4.借还管理数据模型图书读者借还记录用户罚款记录图书注销数据模型图书图书编号图书名称ISBN图书类别作者译者出版社图书单价图书简介库存总量所在位置现存量借阅次数入库员图书ER模型系统系统ER图图系统功能架构图图书管理系统系统管理图书管理读者管理借还管理用户登录用户注册用户查询密码修改用户注销图书入库图书查询图书注销图书信息修改读者注册借书证注销借书证挂失读者查询读者信息修改借书信息登记借阅查询图书续借还书信息登记超期罚款管理图书丢失修改用户系统基本处理流程输入账号和密码进入系统选择要处理的模块更新处理系统退出系统三层架构表示层数据层应用逻辑层输入数据请求按钮输出数据业务处理开始数据存取请求业务处理结束业务处理开始数据存取请求业务处理结束SQL请求开始SQL请求结束DBMS执行SQL业务处理请求业务处理请求和业务处理所需和业务处理所需的全部输入数据的全部输入数据全部处理结束全部处理结束数据更新数据更新/读取的请求读取的请求数据更新数据更新/读取的结果读取的结果表示层数据层应用逻辑层这三层架构在程序中体现为设计为不同的包。包设计如下。层层名称名称包包设计设计名称名称表示层view、model(显示模型)应用逻辑层bean(对象)dao(数据访问对象)数据层数据库文件详细设计登录用户名密 码确认确认取消取消登录主窗口设计系统管理用户注册用户查询密码修改修改用户用户注销退出系统图书管理图书入库图书查询图书修改注销图书读者管理读者注册借书证注销借书证挂失读者查询读者修改借还管理借书登记借阅查询图书续借还书登记超期罚款图书丢失主菜单子菜单系统结构设计系统结构设计体现在主菜单体现在主菜单和子菜单中和子菜单中菜单栏工具栏借书还书读者查询图书查询挂失罚款各菜单项与各自的窗体连接界面设计用工具设计界面(Eclipse中安装插件,window Builder)三层架构设计对象包对象包数据库访问包数据库访问包数据模型包数据模型包界面包界面包JDBC程序的工作原理JDBC API提供者:sun公司内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:DriverManager类Connection接口Statement接口ResultSet接口DriverManager提供者:sun公司作用:载入各种不同的JDBC驱动JDBC 驱动提供者:数据库厂商作用:负责连接各种不同的数据库Sql Sql ServerServerOracleOracleJDBC API JDBC Driver Manager JDBC 驱动驱动 JDBC 驱动驱动 Java 应用程序应用程序 JDBC APIJDBC API可做三件事:与数据库建立连接、执行SQL 语句、处理结果ConnectionDriverManagerStatementResultSet DriverManager:依据数据库的不同,管理:依据数据库的不同,管理JDBC驱动驱动 Connection:负责连接数据库并担任传送数据的任务:负责连接数据库并担任传送数据的任务 Statement:由由 Connection 产生、负责执行产生、负责执行SQL语句语句 ResultSet:负责保存:负责保存Statement执行后所产生的查询结果执行后所产生的查询结果客客户户端端数据库服务器数据库服务器1234JDBC程序的工作模板try Class.forName(JDBC驱动类驱动类);catch(ClassNotFoundException e)(无法找到驱动类无法找到驱动类);try Connection con=DriverManager.getConnection(JDBC URL,数据库用户名数据库用户名,密码密码);Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(SELECT a,b,c FROM Table1);while(rs.next()int x=rs.getInt(a);String s=rs.getString(b);float f=rs.getFloat(c);con.close();catch(SQLException e)e.printStackTrace();获得数据库连接获得数据库连接发送发送Sql语句语句处理结果处理结果注册注册JDBC驱动驱动JDBC URL用来标识数据库用来标识数据库 必须处理的异常必须处理的异常释放资源释放资源必须处理的异常必须处理的异常JDBC驱动 5-1JDBC驱动由数据库厂商提供在个人开发与测试中,可以使用JDBC-ODBC桥连方式在生产型开发中,推荐使用纯Java驱动方式DB DB ServerServerDBDBServerServerJDBC APIJDBC Driver Manager纯纯Java 驱动驱动 JDBCODBC桥桥Java 应用程序应用程序 ODBCJDBC驱动 5-2桥连将对JDBC API的调用,转换为对另一组数据库连接API的调用优点:可以访问所有ODBC可以访问的数据库缺点:执行效率低、功能不够强大JDBC-ODBC桥桥Java 应用程序应用程序 JDBC APIODBC APIODBC层层DBDBServerServerJDBC驱动 5-5使用纯Java驱动方式进行直连1、下载数据库厂商提供的驱动程序包2、将驱动程序包引入工程中3、编程,通过纯Java驱动方式与数据库建立连接-语法语法-String URL=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=news;Class.forName();Connection con=DriverManager.getConnection(URL,sa,sa);sql server数据库驱动类的数据库驱动类的完全限定类名完全限定类名数据库名称数据库名称三层架构设计对象包对象包数据库访问包数据库访问包数据模型包数据模型包界面包界面包import;import;import;public class DaoFactory/静态方法,返回数据库连接对象static public Connection getConnection()throws Exception/加载数据连接桥Class.forName);URL dbUrl=DaoFactory.class.getClassLoader().getResource(books.mdb);String dbPath=dbUrl.getPath();if(dbPath.charAt(0)=/)dbPath=dbPath.substring(1);String url=jdbc:odbc:driver=Microsoft Access Driver(*.mdb);DBQ=+dbPath;Connection con =DriverManager.getConnection(url,sa,);return con;连接ACCESS数据库借书信息登记还书信息登记借阅查询图书续借借阅信息表管理员借阅信息还书信息图书信息管理员读者编号或图书编号借阅情况图书编号和读者编号借阅成功还书成功4.借还管理4.14.24.44.3续借成功超期罚款管理书籍丢失超期信息罚款额丢失信息罚款额图书信息表读者信息表罚款信息表输入数据请求按钮输出数据业务处理开始数据存取请求业务处理结束业务处理开始数据存取请求业务处理结束SQL请求开始SQL请求结束DBMS执行SQL业务处理请求业务处理请求和业务处理所需和业务处理所需的全部输入数据的全部输入数据全部处理结束全部处理结束数据更新数据更新/读取的请求读取的请求数据更新数据更新/读取的结果读取的结果表示层数据层应用逻辑层