小棒组合

小棒组合团队项目第十五周总结

小棒组合第十四周项目总结

项目名称

  • 图书管理系统

本周项目内容

  • 图书借阅部分设计
  • 图书归还部分设计
  • 图书查询部分设计

项目进展

  • 本周是实现项目的最后一部分,图书借阅和归还的相关部分
  • 图书归还部分
    • 在类构造函数中创建窗体布局及相关属性
    • 为读者条形码文本框添加键盘监听事件,在keyTyped方法中,调用dao类中查询读者相关信息方法
class ISBNListenerlostFocus extends KeyAdapter {
		public void keyTyped(KeyEvent e) {
			if (e.getKeyChar() == '\n') { // 判断在文本框是否输入回车。
				String ISBNs = readerISBN.getText().trim();

				List list = Dao.selectReader(ISBNs);
				if (list.isEmpty() && !ISBNs.isEmpty()) {
					JOptionPane.showMessageDialog(null,
							"此读者编号没有注册,查询输入读者编号是否有误!");
				}
				for (int i = 0; i < list.size(); i++) {
					Reader reader = (Reader) list.get(i);
					readerName.setText(reader.getName());
					number.setText(reader.getMaxNum());
					keepMoney.setText(reader.getKeepMoney() + "");
					System.out.println("读者可借书量" + number.getText().trim());
				}
			}
		}
	}
  • 在图书条形码文本框键盘监听事件中获取图书条形码文本框内容,调用Dao类中查询图书相关信息的方法
class bookISBNListenerlostFocus extends KeyAdapter {
		public void keyTyped(KeyEvent e) {
			if (e.getKeyChar() == '\n') { // 判断在文本框是否输入回车。
				if (readerISBN.getText().trim().length()!=0
						&& bookISBN.getText().trim().length()!=0) {
					String ISBNs = bookISBN.getText().trim();
					List list = Dao.selectBookInfo(ISBNs);
					for (int i = 0; i < list.size(); i++) {
						BookInfo book = (BookInfo) list.get(i);
						bookName.setText(book.getBookname());
						bookType.setText(String.valueOf(map.get(book
								.getTypeid())));
						price.setText(String.valueOf(book.getPrice()));
					}
					String days = "0";
					List list2 = Dao.selectBookCategory(bookType.getText()
							.trim());
					for (int j = 0; j < list2.size(); j++) {
						BookType type = (BookType) list2.get(j);
						days = type.getDays();
					}
					String readerISBNs = readerISBN.getText().trim();
					List list5 = Dao.selectReader(readerISBNs);// 此读者是否在tb_reader表中
					List list4 = Dao.selectBookInfo(ISBNs);// 此书是否在tb_bookInfo表中
					if (!readerISBNs.isEmpty() && list5.isEmpty()) {
						JOptionPane.showMessageDialog(null,
								"此读者编号没有注册,查询输入读者编号是否有误!");
						return;
					}
					if (list4.isEmpty() && !ISBNs.isEmpty()) {
						JOptionPane.showMessageDialog(null,
								"本图书馆没有此书,查询输入图书编号是否有误!");
						return;
					}
					if (Integer.parseInt(number.getText().trim()) <= 0) {
						JOptionPane.showMessageDialog(null, "借书量已经超过最大借书量!");
						return;
					}

					add();
					number.setText(String.valueOf(Integer.parseInt(number
							.getText().trim()) - 1));
				}

				else
					JOptionPane.showMessageDialog(null, "请输入读者条形码!");
			}

		}
	}

  • 在BookBorrowIFrame中创建表格行添加方法add(),在图书条形码文本框键盘监听事件中调用
  • 创建取得应归还时间方法
  • 图书归还部分
    • 实现管理员输入读者条形码后,在窗体表格中显示相关内容的方法,在Dao类中进行,用到tb_borrowtb_readertb_bookInfo三个表格
    • 设计窗体时,需要实现用户单击表格中的某一行,在相应文本框中显示此书借阅的罚款信息,可以设置表格的鼠标监听事件,在mouseClicked()方法中实现上述操作
    • 最后为“图书规还”按钮添加监听事件
  • 图书查询部分设计
    • 在Dao类中定义两个查询方法,分别为条件查询和全部查询,查询完毕结果放入JavaBean中,将Javabean对象添加到list
public static List selectbookserch() {
		List list=new ArrayList();
		String sql = "select *  from tb_bookInfo";
		ResultSet s = Dao.executeQuery(sql);
		try {
			while (s.next()) {
				BookInfo bookinfo=new BookInfo();
				bookinfo.setISBN(s.getString(1));
				bookinfo.setTypeid(s.getString(2));
				bookinfo.setBookname(s.getString(3));
				bookinfo.setWriter(s.getString(4));
				bookinfo.setTranslator(s.getString(5));
				bookinfo.setPublisher(s.getString(6));
				bookinfo.setDate(s.getDate(7));
				bookinfo.setPrice(s.getDouble(8));
				list.add(bookinfo);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		Dao.close();
		return list;
	}
  • BookSearchIFrame类中创建表格
  • 最后在“查询”按钮中添加监听事件,重写actionPerFormed()方法,在此方法中调用Dao类中的查询方法

成员贡献

  • 20145337马 月 学习相关资料
  • 20145329吉东云 学习相关资料
  • 20145308刘昊阳 图书借阅、归还、查询部分代码 撰写博客
  • 20145316许心远 学习相关资料

posted on 2016-06-11 18:05  小棒组合  阅读(138)  评论(0编辑  收藏  举报

导航