⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookmodify.java

📁 是Eclipse web开发从入门到精通的源码
💻 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 + -