📄 borrowbooklist.java
字号:
package library.book;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import library.hibernate.BookBrowse;
import library.main.HibernateUtil;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
public class BorrowBookList extends JFrame implements ActionListener {
Container container;
JPanel panel1, panel2;
JLabel bookNameLabel, studentNameLabel;
JTextField bookNameText, studentNameText;
JButton searchButton, exitButton;
JTable table = null;
DefaultTableModel defaultModel = null;
public BorrowBookList() {
super("书籍借阅一览!");
container = getContentPane();
container.setLayout(new BorderLayout());
//“书名”标签
bookNameLabel = new JLabel("书名 ", JLabel.CENTER);
//“借阅者”标签
studentNameLabel = new JLabel("借阅者", JLabel.CENTER);
//输入“书名”文本框
bookNameText = new JTextField(15);
//输入“学生姓名”文本框
studentNameText = new JTextField(15);
//“查询”按钮
searchButton = new JButton("查询");
//“退出”按钮
exitButton = new JButton("退出");
//为“查询”按钮增加监听者
searchButton.addActionListener(this);
//为“退出”按钮增加监听者
exitButton.addActionListener(this);
Box box1 = Box.createHorizontalBox();
box1.add(studentNameLabel);
box1.add(studentNameText);
box1.add(searchButton);
Box box2 = Box.createHorizontalBox();
box2.add(bookNameLabel);
box2.add(bookNameText);
box2.add(exitButton);
Box boxH = Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(Box.createVerticalGlue());
panel1 = new JPanel();
panel1.add(boxH);
panel2 = new JPanel();
String[] name = { "借阅者", "书名", "借阅日期", "还入日期", "备注" };
String[][] data = new String[0][0];
defaultModel = new DefaultTableModel(data, name);
table = new JTable(defaultModel);
table.setPreferredScrollableViewportSize(new Dimension(400, 80));
JScrollPane s = new JScrollPane(table);
panel2.add(s);
container.add(panel1, BorderLayout.NORTH);
container.add(panel2, BorderLayout.SOUTH);
}
/**
* 动作响应方法,查询所有图书的出借情况
*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent action) {
if (action.getSource() == exitButton) {
// 单击“退出”按钮,不作任何事情
this.dispose();
} else if (action.getSource() == searchButton) {
String strSQL = " from BookBrowse";
String strSql = null;
if (studentNameText.getText().trim().equals("")
&& bookNameText.getText().trim().equals("")) {
// 无条件查询
strSql = strSQL;
} else if (studentNameText.getText().trim().equals("")) {
// 按书名查询
strSql = strSQL + " where bookName='"
+ bookNameText.getText().trim() + "'";
} else if (bookNameText.getText().trim().equals("")) {
// 按学生姓名查询
strSql = strSQL + " where studentName='"
+ studentNameText.getText().trim() + "'";
} else {
// 按学生姓名和书名查询
strSql = strSQL + " where studentName='"
+ studentNameText.getText().trim() + "'and bookName='"
+ bookNameText.getText().trim() + "'";
}
// 首先要删除table中的数据先:
int rowCount = defaultModel.getRowCount() - 1;// 取得table中的数据行;
int j = rowCount;
for (int i = 0; i <= rowCount; i++) {
defaultModel.removeRow(j);// 删除rowCount行的数据;
defaultModel.setRowCount(j);// 重新设置行数;
j = j - 1;
}
// 取得SessionFactory
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
// 打开session
Session session = sessionFactory.openSession();
// 创建一个事务
Transaction tx = session.beginTransaction();
// 执行查询
Query userList = session.createQuery(strSql);
// 将查询结果放置到一个list链表中
List list = userList.list();
for (int index = 0; index < list.size(); index++) {
Vector data = new Vector();
BookBrowse book = (BookBrowse) list.get(index);
data.addElement(book.getStudentName());
data.addElement(book.getBookName());
data.addElement(book.getBorrowDate());
data.addElement(book.getReturnDate());
data.addElement(book.getCom());
defaultModel.addRow(data);
}
table.revalidate();
// 事务提交
tx.commit();
// 关闭session
session.close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -