小棒组合第十四周项目总结
项目名称
本周项目内容
- 图书借阅部分设计
- 图书归还部分设计
- 图书查询部分设计
项目进展
- 本周是实现项目的最后一部分,图书借阅和归还的相关部分
- 图书归还部分
- 在类构造函数中创建窗体布局及相关属性
- 为读者条形码文本框添加键盘监听事件,在
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_borrow
、tb_reader
、tb_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许心远 学习相关资料