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

📄 booklist.java

📁 是Eclipse web开发从入门到精通的源码
💻 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.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.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 BookList extends JFrame implements ActionListener {

	Container container;

	JPanel panel1, panel2, panel3;

	JLabel bookNameLabel, authorLabel, pressLabel;

	JTextField bookNameText, authorText, pressText;

	JButton searchButton, exitButton;

	JTable table = null;

	DefaultTableModel defaultModel = null;

	public BookList() {
		super("书籍信息一览!");
		container = getContentPane();
		container.setLayout(new BorderLayout());
		//“名称”标签
		bookNameLabel = new JLabel("名称", JLabel.CENTER);
		//“作者”标签
		authorLabel = new JLabel("作者", JLabel.CENTER);
		//“出版社”标签
		pressLabel = new JLabel("出版社", JLabel.CENTER);
		//输入书名文本框
		bookNameText = new JTextField(15);
		//输入作者姓名文本框
		authorText = new JTextField(15);
		//输入出版社姓名文本框
		pressText = new JTextField(15);
		//“查询”按钮
		searchButton = new JButton("查询");
		//为“查询”按钮增加事件监听者
		searchButton.addActionListener(this);
		//“退出”按钮
		exitButton = new JButton("退出");
		//为“退出”按钮添加事件监听者
		exitButton.addActionListener(this);
		panel1 = new JPanel();
		panel3 = new JPanel();
		panel1.add(bookNameLabel);
		panel1.add(bookNameText);
		panel1.add(authorLabel);
		panel1.add(authorText);
		panel3.add(pressLabel);
		panel3.add(pressText);
		panel3.add(searchButton);
		panel3.add(exitButton);
		//表格的列名
		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 = new JPanel();
		panel2.add(s);
		container.add(panel1, BorderLayout.NORTH);
		container.add(panel3, 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() == searchButton) {
			String hql = " from Books";
			String strSql = null;
			if (bookNameText.getText().trim().equals("")
					&& authorText.getText().trim().equals("")
					&& pressText.getText().trim().equals("")) {
				// 如果没有查询条件
				strSql = hql;
			} else if (bookNameText.getText().trim().equals("")
					&& authorText.getText().trim().equals("")) {
				// 按照出版社查询书籍
				strSql = hql + " where press='" + pressText.getText().trim()
						+ "'";
			} else if (bookNameText.getText().trim().equals("")
					&& pressText.getText().trim().equals("")) {
				// 按照作者姓名查询书籍
				strSql = hql + " where author='" + authorText.getText().trim()
						+ "'";
			} else if (authorText.getText().trim().equals("")
					&& pressText.getText().trim().equals("")) {
				// 按照书名查询书籍
				strSql = hql + " where bookName='"
						+ bookNameText.getText().trim() + "'";
			} else if (bookNameText.getText().trim().equals("")) {
				// 按照作者和出版社两个条件来查询书籍
				strSql = hql + " where author='" + authorText.getText().trim()
						+ "'and press='" + pressText.getText().trim() + "'";
			} else if (authorText.getText().trim().equals("")) {
				// 按照书名和出版社两个条件来查询书籍
				strSql = hql + " where bookName='"
						+ bookNameText.getText().trim() + "'and press='"
						+ pressText.getText().trim() + "'";
			} else if (pressText.getText().trim().equals("")) {
				// 按照书名和作者两个条件来查询书籍
				strSql = hql + " where bookname='"
						+ bookNameText.getText().trim() + "'and author='"
						+ authorText.getText().trim() + "'";
			} else {
				// 按照书名、作者和出版社三个条件来查询书籍
				strSql = hql + " where bookname='"
						+ bookNameText.getText().trim() + "'and author='"
						+ authorText.getText().trim() + "'and press='"
						+ pressText.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();
				Books book = (Books) list.get(index);
				data.addElement(book.getBookName());
				data.addElement(book.getPress());
				data.addElement(book.getAuthor());
				data.addElement(book.getAddress());
				data.addElement(book.getPressDate());
				data.addElement(book.getPrice());
				data.addElement(book.getCom());
				defaultModel.addRow(data);
			}
			table.revalidate();
//			 事务提交
			tx.commit();
			// 关闭session
			session.close();

		} else if (action.getSource() == exitButton) {
			this.dispose();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -