本文共 6312 字,大约阅读时间需要 21 分钟。
前面一直在看书本以及视频学习,课程上跟着老师也写一些练习代码,但是没有总结所有知识,于是写了一个图书管理系统,也练习一下数据库的知识。
图书管理系统需求:
在图书管理系统中,要为每个借阅者建立一个帐户,并给借阅者发放借阅卡,帐户中存储借阅者的个人信息、借阅者信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定。在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN[2]号,然后输入借阅者的图书卡号和借阅者名,完成提交所填表格,系统验证借阅者是否有效(在系统中存在帐户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借的书刊被借出,借阅者还可以预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预订人(为了简化系统,暂时假定预定书刊可获得时就不通知借阅者了;也暂不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊)。
操作系统:Windows10
开发工具:Eclipse
数据库:MySQL5.6
创建MySQL数据库library
下面是各个表:
运行程序:
登录界面:
此系统只有一个用户名和密码。满足要求的各种判断方式
A.没有输入用户名或密码
B.输入用户名或密码有特殊符号
C.输入的密码错误
D.退出时提醒
登录成功后进入主界面
部分子菜单
添加订阅者信息界面
部分代码如下:
/** * 主窗体 * */public class Library 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(); } } public static void addIFame(JInternalFrame iframe) { // 添加子窗体的方法 DESKTOP_PANE.add(iframe); } public Library() { super(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setLocationByPlatform(true); setSize(800, 600); setTitle("图书管理系统"); JMenuBar menuBar = createMenu(); setJMenuBar(menuBar); JToolBar toolBar = createToolBar(); getContentPane().add(toolBar, BorderLayout.NORTH); final JLabel label = new JLabel(); label.setBounds(0, 0, 0, 0); label.setIcon(null); DESKTOP_PANE.addComponentListener(new ComponentAdapter() { public void componentResized(final ComponentEvent e) { Dimension size = e.getComponent().getSize(); label.setSize(e.getComponent().getSize()); label.setText(""); } }); DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE)); getContentPane().add(DESKTOP_PANE); } /** * 创建工具栏 * * @return JToolBar */ private JToolBar createToolBar() { // 创建工具栏的方法 JToolBar toolBar = new JToolBar(); toolBar.setFloatable(false); toolBar.setBorder(new BevelBorder(BevelBorder.RAISED)); JButton bookAddButton=new JButton(MenuActions.BOOK_ADD); ImageIcon icon=new ImageIcon(Library.class.getResource("/bookAddtb.jpg"));//添加菜单栏图标 bookAddButton.setIcon(icon); bookAddButton.setHideActionText(true); toolBar.add(bookAddButton); //在工具栏中添加图书修改与删除图标 JButton bookModiAndDelButton=new JButton(MenuActions.BOOK_MODIFY); ImageIcon bookmodiicon=CreatecdIcon.add("bookModiAndDeltb.jpg");//创建图标方法 bookModiAndDelButton.setIcon(bookmodiicon); bookModiAndDelButton.setHideActionText(true); toolBar.add(bookModiAndDelButton); JButton bookTypeAddButton=new JButton(MenuActions.BOOKTYPE_ADD); ImageIcon bookTypeAddicon=CreatecdIcon.add("bookTypeAddtb.jpg");//创建图标方法 bookTypeAddButton.setIcon(bookTypeAddicon); bookTypeAddButton.setHideActionText(true); toolBar.add(bookTypeAddButton); JButton bookBorrowButton=new JButton(MenuActions.BORROW); ImageIcon bookBorrowicon=CreatecdIcon.add("bookBorrowtb.jpg");//创建图标方法 bookBorrowButton.setIcon(bookBorrowicon); bookBorrowButton.setHideActionText(true); toolBar.add(bookBorrowButton); JButton bookOrderButton=new JButton(MenuActions.NEWBOOK_ORDER); ImageIcon bookOrdericon=CreatecdIcon.add("bookOrdertb.jpg");//创建图标方法 bookOrderButton.setIcon(bookOrdericon); bookOrderButton.setHideActionText(true); toolBar.add(bookOrderButton); JButton bookCheckButton=new JButton(MenuActions.NEWBOOK_CHECK_ACCEPT); ImageIcon bookCheckicon=CreatecdIcon.add("newbookChecktb.jpg");//创建图标方法 bookCheckButton.setIcon(bookCheckicon); bookCheckButton.setHideActionText(true); toolBar.add(bookCheckButton); JButton readerAddButton=new JButton(MenuActions.READER_ADD); ImageIcon readerAddicon=CreatecdIcon.add("readerAddtb.jpg");//创建图标方法 readerAddButton.setIcon(readerAddicon); readerAddButton.setHideActionText(true); toolBar.add(readerAddButton); JButton readerModiAndDelButton=new JButton(MenuActions.READER_MODIFY); ImageIcon readerModiAndDelicon=CreatecdIcon.add("readerModiAndDeltb.jpg");//创建图标方法 readerModiAndDelButton.setIcon(readerModiAndDelicon); readerModiAndDelButton.setHideActionText(true); toolBar.add(readerModiAndDelButton); JButton ExitButton=new JButton(MenuActions.EXIT); ImageIcon Exiticon=CreatecdIcon.add("exittb.jpg");//创建图标方法 ExitButton.setIcon(Exiticon); ExitButton.setHideActionText(true); toolBar.add(ExitButton); return toolBar; } /** * 创建菜单栏 */ private JMenuBar createMenu() { // 创建菜单栏的方法 JMenuBar menuBar = new JMenuBar(); JMenu bookOrderMenu = new JMenu(); // 初始化新书订购管理菜单 bookOrderMenu.setIcon(CreatecdIcon.add("xsdgcd.jpg")); bookOrderMenu.add(MenuActions.NEWBOOK_ORDER); bookOrderMenu.add(MenuActions.NEWBOOK_CHECK_ACCEPT); JMenu baseMenu = new JMenu();// 初始化基础数据维护菜单 baseMenu.setIcon(CreatecdIcon.add("jcsjcd.jpg")); { JMenu readerManagerMItem = new JMenu("订阅者信息管理"); readerManagerMItem.add(MenuActions.READER_ADD); readerManagerMItem.add(MenuActions.READER_MODIFY); JMenu bookTypeManageMItem = new JMenu("图书类别管理"); bookTypeManageMItem.add(MenuActions.BOOKTYPE_ADD); bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY); JMenu menu = new JMenu("图书信息管理"); menu.add(MenuActions.BOOK_ADD); menu.add(MenuActions.BOOK_MODIFY); baseMenu.add(readerManagerMItem); baseMenu.add(bookTypeManageMItem); baseMenu.add(menu); baseMenu.addSeparator(); baseMenu.add(MenuActions.EXIT); } JMenu borrowManageMenu = new JMenu(); borrowManageMenu.setIcon(CreatecdIcon.add("jyglcd.jpg")); borrowManageMenu.add(MenuActions.BORROW); borrowManageMenu.add(MenuActions.GIVE_BACK); borrowManageMenu.add(MenuActions.BOOK_SEARCH); JMenu sysManageMenu = new JMenu(); sysManageMenu.setIcon(CreatecdIcon.add("jcwhcd.jpg")); JMenu userManageMItem = new JMenu("用户管理"); userManageMItem.add(MenuActions.USER_ADD); userManageMItem.add(MenuActions.USER_MODIFY); sysManageMenu.add(MenuActions.MODIFY_PASSWORD); sysManageMenu.add(userManageMItem); menuBar.add(baseMenu); menuBar.add(bookOrderMenu); menuBar.add(borrowManageMenu); menuBar.add(sysManageMenu); return menuBar; }}
做完这个系统感觉自己总体上收获还是挺大的,系统主要实现了图书管理的功能,从需求分析,界面的搭建、美化,再到数据库的连接,表格,存储过程和存储过程等的建立。一系列的过程步骤让我对于Java + MySQL有了更深刻的理解,也让我学会了很多东西并对面向对象有了更深的认识。其中用到的知识虽然大部分都已经在书上过,但真正实践起来才发现自己还是有很多不足,于是我又将书本中的知识重新回炉了一遍,加深了对课本知识的理解,更明白监听器的工作原理。通过对不同事件进行监听去做出相应的不同的操作。
上面只是部分界面和部分代码,有需要源码可私信。
转载地址:https://blog.csdn.net/Zzehao11/article/details/106024254 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!