图书馆管理系统(Java Mysql)

基于MVC的图书管理系统

后台数据库是基于MYSQL,通过MVC实现各个模块

声明本程序是在一位大佬的程序的上,根据本人课程设计的要求之上进行修改,添加几个新的功能,将原本的只有单一root用户登录修改为可以多用户,不同角色登录,同时根据不同角色呈现不同的用户界面操作,其文章链接为[https://blog.csdn.net/qq_35793285/article/details/85209242]
下面简单说明新增加或者修改的部分

1. 在其登录界面新增加身份选择部分,可以根据具体选择的身份进行登录
图书馆管理系统(Java Mysql)_第1张图片
2.对于管理员的相应逻辑操作并没有做出太大的改动,只是在自己的理解之上将借走书籍管理部分进行删减
图书馆管理系统(Java Mysql)_第2张图片
3.对于读者界面部分做出的添加

  1. 对于借走书籍管理界面,读者本人只能看到自己当前所借的所有图书,并且可以选择归还图书馆管理系统(Java Mysql)_第3张图片
  2. 对于全部书籍界面,去掉了之前管理员界面的大部分按钮,只保留了借阅按钮,可以用来借走图书,但是因为时间问题,有一个问题并没有改善,具体在于显示图书时,并不是只显示未被借阅的图书,而是全部显示,当然可以理解不同,我当时理解为不应该为错误,毕竟不可以之后一本书
    图书馆管理系统(Java Mysql)_第4张图片

至于代码部分,这里之列出,建议从这部分开始去阅读,当遇到自定义类时,在于读一下相应的功能

public class AdminMenuBar {
	
	JMenuBar menuBar;
	JMenuItem menuItemBookInformation;
	JMenuItem menuItemBorrowManage;
	JMenuItem menuItemChangUser;
	JMenuItem menuItemExit;
	User user;
	
	public AdminMenuBar(JFrame frame,User user) {
		
		menuBar = new JMenuBar();
		this.user=user;
		// 图书信息管理菜单项
		menuItemBookInformation = new JMenuItem();	 
		setMenuItemBookInformationn(frame);
	
		// 图书借阅管理菜单项
		menuItemBorrowManage = new JMenuItem();
		setMenuItemBorrowManage(frame);
		
		// 用户信息更改菜单项
		menuItemChangUser = new JMenuItem();
		setMenuItemChangeUser(frame);
		
		// 退出系统菜单项
		menuItemExit = new JMenuItem();
		setMenuItemExit(frame);
			
		menuBar.add(menuItemBorrowManage);
		menuBar.add(menuItemBookInformation);
		menuBar.add(menuItemChangUser);
		menuBar.add(menuItemExit);
		
		frame.setJMenuBar(menuBar);
	}


	
	/**
	 * 设置退出系统菜单项
	 */
	private void setMenuItemExit(JFrame frame) {
		menuItemExit.setIcon(new ImageIcon("res/menuItemExit.jpg"));
		menuItemExit.addActionListener(new ActionListener() {		
			@Override
			public void actionPerformed(ActionEvent e) {
				// 使父窗体不可见
				frame.setVisible(false);
				new LoginView();
			}
		});
	}

	//切换到修改密码一界面
	private void setMenuItemChangeUser(JFrame frame) {
		menuItemChangUser.setIcon(new ImageIcon("res/menuItemChangePassword.jpg"));
		menuItemChangUser.addActionListener(new ActionListener() {	
			@Override
			public void actionPerformed(ActionEvent e) {
				// 使父窗体不可见
				frame.setVisible(false);
				new ChangeUserInformation(user);
			}
		});
	}

	//切换到借走图书管理界面
	private void setMenuItemBorrowManage(JFrame frame) {
		menuItemBorrowManage.setIcon(new ImageIcon("res/menuBookCategoryManage.jpg"));
		menuItemBorrowManage.addActionListener(new ActionListener() {		
			@Override
			public void actionPerformed(ActionEvent e) {
				// 使父窗体不可见
				frame.setVisible(false);
				new AdminBookBorrow(user);
			}
		});
	}

	//切换到个人图书管理界面
	private void setMenuItemBookInformationn(JFrame frame) {
		menuItemBookInformation.setIcon(new ImageIcon("res/menuBookInformationManage.jpg"));
		menuItemBookInformation.addActionListener(new ActionListener() {		
			@Override
			public void actionPerformed(ActionEvent e) {
				// 使父窗体不可见
				frame.setVisible(false);	
				new AdminBookInformation(user);
			}
		});
	}
	

}

public class ReadMenuBar {
		JMenuBar menuBar;
		JMenuItem menuItemBookInformation;
		JMenuItem menuItemBorrowManage;
		JMenuItem menuItemChangUser;
		JMenuItem menuItemExit;
		User user;
		
		public ReadMenuBar(JFrame frame,User user) {
			
			this.user=user;
			
			menuBar = new JMenuBar();
			
			// 图书信息管理菜单项
			menuItemBookInformation = new JMenuItem();	 
			setMenuItemBookInformationn(frame);
		
			// 图书借阅管理菜单项
			menuItemBorrowManage = new JMenuItem();
			setMenuItemBorrowManage(frame);
			
			// 用户信息更改菜单项
			menuItemChangUser = new JMenuItem();
			setMenuItemChangeUser(frame);
			
			// 退出系统菜单项
			menuItemExit = new JMenuItem();
			setMenuItemExit(frame);
				
			menuBar.add(menuItemBorrowManage);
			menuBar.add(menuItemBookInformation);
			menuBar.add(menuItemChangUser);
			menuBar.add(menuItemExit);
			
			frame.setJMenuBar(menuBar);
		}


		
		/**
		 * 设置退出系统菜单项
		 */
		private void setMenuItemExit(JFrame frame) {
			menuItemExit.setIcon(new ImageIcon("res/menuItemExit.jpg"));
			menuItemExit.addActionListener(new ActionListener() {		
				@Override
				public void actionPerformed(ActionEvent e) {
					// 使父窗体不可见
					frame.setVisible(false);
					new LoginView();
				}
			});
		}

		//切换到修改密码一界面
		private void setMenuItemChangeUser(JFrame frame) {
			menuItemChangUser.setIcon(new ImageIcon("res/menuItemChangePassword.jpg"));
			menuItemChangUser.addActionListener(new ActionListener() {	
				@Override
				public void actionPerformed(ActionEvent e) {
					// 使父窗体不可见
					frame.setVisible(false);
					new ChangeUserInformation(user);
				}
			});
		}

		//切换到借走图书管理界面
		private void setMenuItemBorrowManage(JFrame frame) {
			menuItemBorrowManage.setIcon(new ImageIcon("res/menuBookCategoryManage.jpg"));
			menuItemBorrowManage.addActionListener(new ActionListener() {		
				@Override
				public void actionPerformed(ActionEvent e) {
					// 使父窗体不可见
					frame.setVisible(false);
					new ReadBookBorrow(user);
				}
			});
		}

		//切换到个人图书管理界面
		private void setMenuItemBookInformationn(JFrame frame) {
			menuItemBookInformation.setIcon(new ImageIcon("res/menuBookInformationManage.jpg"));
			menuItemBookInformation.addActionListener(new ActionListener() {		
				@Override
				public void actionPerformed(ActionEvent e) {
					// 使父窗体不可见
					frame.setVisible(false);	
					new ReadBookInformation(user);
				}
			});
		}
		

	}

但是可以因为JDK版本不同,各位在将我的project导入自己的编译软件时可能会出现问题,还请大家自行百度解决,这部分我也不是太会

至于数据库问题,该程序有两个表,

在这里插入图片描述
在这里插入图片描述

实现报告部分依然,沿用大佬的报告

悄悄的说啊,上面不是我的电话,如果打错,概不负责啊@_@

在此感谢大佬的帮助,同时也希望能帮助更多的人,如果文章写的太烂请不要介意。源代码百度云盘地址如下,如果失效,请评论,我会在补充

链接:https://pan.baidu.com/s/1UsueGA8XQRAowU8g0m1UEA
提取码:xz6u

你可能感兴趣的:(课程设计)