📄 bookmodify.java
字号:
package library.book;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.GregorianCalendar;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import library.hibernate.Books;
import library.main.HibernateUtil;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
/**
* 图书信息修改类,将修改后的图书信息提交到数据库中
*
* @author lianhw
*
*/
public class BookModify extends JFrame implements ActionListener {
JPanel panel1, panel2, panel3;
JLabel tipLabel = new JLabel("输入书名点确定,将调出此书相关信息");
JLabel bookNameLabel, pressNameLabel, authorLabel, addressLabel,
pressDateLabel, priceLabel, commentLabel;
JTextField bookNameText, pressNameText, authorText, addressText,
pressDateText, priceText, commentText;
Container container;
JButton clearButton, yesButton, updateButton, exitButton;
// 用来保存图书的数量
private int count;
/**
* 类的构造函数,完成界面的初始化
*/
public BookModify() {
super("修改书籍信息");
container = getContentPane();
container.setLayout(new BorderLayout());
panel3 = new JPanel();
panel3.add(tipLabel);
container.add(panel3, BorderLayout.NORTH);
// “名称”标签
bookNameLabel = new JLabel("名称", JLabel.CENTER);
// “出版社”标签
pressNameLabel = new JLabel("出版社", JLabel.CENTER);
// “作者”标签
authorLabel = new JLabel("作者", JLabel.CENTER);
// “地址”标签
addressLabel = new JLabel("地址", JLabel.CENTER);
// “出版日期”标签
pressDateLabel = new JLabel("出版日期", JLabel.CENTER);
// “价格”标签
priceLabel = new JLabel("价格", JLabel.CENTER);
// “备注”标签
commentLabel = new JLabel("备注", JLabel.CENTER);
// 书籍名称文本框
bookNameText = new JTextField(15);
// 输入出版社名称文本框
pressNameText = new JTextField(15);
// 输入作者文本框
authorText = new JTextField(15);
// 输入地址文本框
addressText = new JTextField(15);
// 输入出版日期文本框
pressDateText = new JTextField(15);
// 输入价格文本框
priceText = new JTextField(15);
// 输入备注信息文本框
commentText = new JTextField(15);
panel1 = new JPanel();
panel1.setLayout(new GridLayout(7, 2));
panel1.add(bookNameLabel);
panel1.add(bookNameText);
panel1.add(pressNameLabel);
panel1.add(pressNameText);
panel1.add(authorLabel);
panel1.add(authorText);
panel1.add(addressLabel);
panel1.add(addressText);
panel1.add(pressDateLabel);
panel1.add(pressDateText);
panel1.add(priceLabel);
panel1.add(priceText);
panel1.add(commentLabel);
panel1.add(commentText);
panel2 = new JPanel();
panel2.setLayout(new GridLayout(1, 4));
// “清空”按钮
clearButton = new JButton("清空");
// “确定”按钮
yesButton = new JButton("确定");
// “更新”按钮
updateButton = new JButton("更新");
// “退出”按钮
exitButton = new JButton("退出");
panel2.add(clearButton);
panel2.add(yesButton);
panel2.add(updateButton);
panel2.add(exitButton);
// 为“清空”按钮添加监听者
clearButton.addActionListener(this);
// 为“确定”按钮添加监听者
yesButton.addActionListener(this);
// 为“更新”按钮添加监听者
updateButton.addActionListener(this);
// 为“退出”按钮添加监听者
exitButton.addActionListener(this);
updateButton.setEnabled(false);
container.add(panel1, BorderLayout.CENTER);
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() == clearButton) {
// 单击“清空”按钮将所有文本框中的内容清空
bookNameText.setText("");
pressNameText.setText("");
authorText.setText("");
addressText.setText("");
pressDateText.setText("");
priceText.setText("");
commentText.setText("");
} else if (action.getSource() == yesButton) {
// 单击“确定”按钮将图书信息读出
// 取得SessionFactory
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
// 打开session
Session session = sessionFactory.openSession();
// 创建一个事务
Transaction tx = session.beginTransaction();
// hsql执行语句
String hql = "from Books where bookName='"
+ bookNameText.getText().trim() + "'";
// 执行查询
Query bookInfoList = session.createQuery(hql);
// 将查询结果放置到一个list链表中
List list = bookInfoList.list();
if (bookNameText.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "清输入书名:<*v*>");
} else if (list.size() == 0) {
JOptionPane.showMessageDialog(null, "此书没有在书库中...");
} else {
Books book = (Books) list.get(0);
bookNameText.setText(book.getBookName());
pressNameText.setText(book.getPress());
authorText.setText(book.getAuthor());
addressText.setText(book.getAddress());
pressDateText.setText(book.getPressDate().toString());
priceText.setText(book.getPrice().toString());
commentText.setText(book.getCom());
count = book.getBooksCount().intValue();
updateButton.setEnabled(true);
// 事务提交
tx.commit();
// 关闭session
session.close();
}
} else if (action.getSource() == updateButton) {
// 取得SessionFactory
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
// 打开session
Session session = sessionFactory.openSession();
// 创建一个事务
Transaction tx = session.beginTransaction();
// 创建UserTable对象
Books book = new Books();
book.setBookName(bookNameText.getText().trim());
book.setPress(pressNameText.getText().trim());
book.setAuthor(authorText.getText().trim());
book.setAddress(addressText.getText().trim());
book.setPressDate(new GregorianCalendar().getTime());
book.setPrice(new Double(priceText.getText().trim()));
book.setCom(commentText.getText().trim());
book.setBooksCount(new Integer(count));
session.saveOrUpdate(book);
// 事务提交
tx.commit();
// 关闭session
session.close();
JOptionPane.showMessageDialog(null, "修改书籍成功!");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -