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

📄 borrowbook.java

📁 简单的书店管理系统,是课设期间教师指导完成的,希望会对大家有帮助!
💻 JAVA
字号:
package book;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.TableColumn;
//借书
public class BorrowBook extends Mb{
	private JLabel icon,readerNumber, readerName,jBookNumber,zBookNumber,kBookNumber,hBookTime,readerBook;
	
	private JLabel bookNumber, bookIsbn,bookName,bookPublish,bookType,bookPrice,remark;

	private JTextField treaderNumber, treaderName,tjBookNumber,tzBookNumber,tkBookNumber,thBookTime;
	
	private JTextField tbookNumber, tbookIsbn,tbookName,tbookPublish,tbookType,tbookPrice;
	
	private JTextArea  tremark;

	private ButtonIcon ok,ok1,jie,close,quxiao;

	private JScrollPane scrool,scrool1;


	private Table table;

	private PreparedStatement pstmt = null;

	private NowEditableModel dtm;
	
	private String cishu=null;

	BorrowBook(String s, int i, int j) throws SQLException {
		super(s, i, j);
		con.setLayout(null);
		shezhi();
		add();
	}
	
	private void shezhi(){
		
		table=new Table();
		scrool = new JScrollPane(table);
		scrool.setBounds(20, 350, 555, 125);
		
		setLabel();
		setTextField();
		setButton();
	}
	//设置标签
	void setLabel(){
		
        icon=new JLabel(new ImageIcon("./data/image/heard/booksystem.jpg"));
		icon.setBounds(20,5,550,50);
		
		
		readerNumber = new JLabel("读者编号:");
		readerNumber.setBounds(20, 60, 80, 18);
		
		readerName=new JLabel("读者姓名:");
		readerName.setBounds(180, 60, 80, 18);
		
		zBookNumber=new JLabel("总借书次:");
		zBookNumber.setBounds(380, 60, 80, 18);
		
		jBookNumber=new JLabel("借出书数:");
		jBookNumber.setBounds(180, 90, 80, 18);
		
		
		kBookNumber=new JLabel("可借天数:");
		kBookNumber.setBounds(380, 90, 80, 18);
		
		hBookTime=new JLabel("应还日期:");
		hBookTime.setBounds(380, 120, 80, 18);
		
		
		
		bookNumber=new JLabel("图书编号:");
		bookNumber.setBounds(20, 190, 80, 18);
		
		bookIsbn=new JLabel("ISBN:");
		bookIsbn.setBounds(20, 230, 80, 18);
		
		bookName=new JLabel("图书名称:");
		bookName.setBounds(180, 190, 80, 18);
		
		bookPublish=new JLabel("出版社:");
		bookPublish.setBounds(180, 220, 80, 18);
		
		bookType=new JLabel("图书类别:");
		bookType.setBounds(180, 250, 80, 18);
		
		bookPrice=new JLabel("图书价格:");
		bookPrice.setBounds(180, 280, 80, 18);
		
		readerBook=new JLabel("读者已借图书信息");
		readerBook.setBounds(210, 320, 150, 18);
	    
		remark=new JLabel("简介:");
		remark.setBounds(395, 190, 80, 18);
		
		
		
	}
	//设置文本匡
	void setTextField(){
		treaderNumber=new JTextField();
		treaderNumber.setBounds(20,90,120,18);
		
		treaderName=new JTextField();
		treaderName.setBounds(250, 60, 120, 18);
		treaderName.setEnabled(false);
		
		tzBookNumber=new JTextField();
		tzBookNumber.setBounds(450, 60, 120, 18);
		tzBookNumber.setEnabled(false);
		
		tjBookNumber=new JTextField();
		tjBookNumber.setBounds(250, 90, 120, 18);
		tjBookNumber.setEnabled(false);
		
		
		tkBookNumber=new JTextField();
		tkBookNumber.setBounds(450, 90, 120, 18);
		tkBookNumber.setEnabled(false);
		
		thBookTime=new JTextField();
		thBookTime.setBounds(450, 120, 120, 18);
		thBookTime.setEnabled(false);
		
		

		
		tbookNumber=new JTextField();
		tbookNumber.setBounds(20, 210, 120, 18);
		
		tbookIsbn=new JTextField();
		tbookIsbn.setBounds(20, 250, 120, 18);
		tbookIsbn.setEnabled(false);
		
		tbookName=new JTextField();
		tbookName.setBounds(250, 190, 120, 18);
		tbookName.setEnabled(false);
		
		tbookPublish=new JTextField();
		tbookPublish.setBounds(250, 220, 120, 18);
		tbookPublish.setEnabled(false);
		
		tbookType=new JTextField();
		tbookType.setBounds(250, 250, 120, 18);
		tbookType.setEnabled(false);
		
		tbookPrice=new JTextField();
		tbookPrice.setBounds(250, 280, 120, 18);
		tbookPrice.setEnabled(false);
		
		tremark = new JTextArea();
		tremark.setEnabled(false);
		scrool1 = new JScrollPane(tremark);
		scrool1.setBounds(450, 190, 120, 120);
		
	}
	
	void setButton(){
		ok = new ButtonIcon("确定");
		ok.setBounds(20, 120, 70, 25);
		ok.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
				try {
					MainDAO dao = new MainDAO();
					if(!dao.Judge("select 读者编号 from duzheziliao", treaderNumber.getText(), "读者编号")){
						JOptionPane.showMessageDialog(table, "此读者不存在,请确认读者编号是否正确!!");
						readerClean();//检测读者是否存在
					}
					else
						if(readerJudge()){//检测编号是否合法
							ResultSet rs=null;
							String str = "select 读者姓名,借出数量,已借数量,天数上限 from duzheziliao where 读者编号=?";
							pstmt = dao.getPreparedStatement(str);
							pstmt.setString(1,treaderNumber.getText());
							rs=pstmt.executeQuery();
						    if(rs.next()){
						     treaderName.setText(rs.getString("读者姓名"));
						     tzBookNumber.setText(rs.getString("借出数量"));
						     tjBookNumber.setText(String.valueOf(rs.getInt("已借数量")));
						     tkBookNumber.setText(rs.getString("天数上限"));
						    }
						    thBookTime.setText(getDate(Integer.parseInt(tkBookNumber.getText())));
						    rs.close();
						    dao.close();
						    
						    table.Renovate("select * from jiechutushu where 读者编号="+treaderNumber.getText());//刷新Table表
						    okJudge();//检测图书和读者是否都已经输入 如过都已输入借书按钮可以点击
						}
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			
		});
		
		ok1 = new ButtonIcon("确定");//显示要借出的图书
		ok1.setBounds(20, 280, 70, 25);
		ok1.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
			     try {
			    	 MainDAO dao = new MainDAO();
			    	 ResultSet rs=null;
					if(bookJudge()){
						String str = "select ISBN,图书名称,出版社,图书类别,价格,借出次数,简介 from tushuziliao where 图书编号=?";
						pstmt = dao.getPreparedStatement(str);
						pstmt.setString(1,tbookNumber.getText());
						rs=pstmt.executeQuery();
					    if(rs.next()){
					     tbookIsbn.setText(rs.getString("ISBN"));
					     tbookName.setText(rs.getString("图书名称"));
					     tbookPublish.setText(rs.getString("出版社"));
					     tbookType.setText(rs.getString("图书类别"));
					     tbookPrice.setText(String.valueOf(rs.getFloat("价格")));
					     cishu=String.valueOf(rs.getInt("借出次数"));
					     tremark.setText(rs.getString("简介"));
					    }
					    rs.close();
					    dao.close(); 
					    okJudge();
					 }
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			
		});
		
		
		jie = new ButtonIcon("借书");
		jie.setBounds(300, 490, 70, 25);
		jie.setEnabled(false);
		jie.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
				MainDAO dao;
				try {
					java.sql.Date nowTime= new java.sql.Date(Calendar.getInstance().getTime().getTime());
					dao = new MainDAO();
					String str = "insert into jiechutushu(图书编号,图书名称,读者编号,读者姓名,借书日期,应还日期,是否超期,经手人) values(?,?,?,?,?,?,?,?)";
					pstmt = dao.getPreparedStatement(str);
					pstmt.setInt(1,Integer.parseInt(tbookNumber.getText()));
					pstmt.setString(2,tbookName.getText());
					pstmt.setInt(3,Integer.parseInt(treaderNumber.getText()));
					pstmt.setString(4,treaderName.getText());
					pstmt.setDate(5,nowTime);
					pstmt.setString(6,thBookTime.getText());
					pstmt.setString(7,"否");
					pstmt.setString(8,MainFrame.getUser());
					pstmt.executeUpdate();//添家借书记录
					pstmt.close();
					dao.close();
					
					readerAdd();
					bookAdd();
					JOptionPane.showMessageDialog(table, "借出成功!!!!请按时还书!");
					allClean();
					
				} catch (SQLException e) {
					e.printStackTrace();
				}
				
			}
			
		});
		
		
		quxiao = new ButtonIcon("取消");
		quxiao.setBounds(400, 490, 70, 25);
		quxiao.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
			   allClean();
			}
			
		});
		
		
		close = new ButtonIcon("关闭");
		close.setBounds(500, 490, 70, 25);
		close.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
			close();
			}
			
		});
	}
	//检测读者借书是否上限
	boolean readerJudge(){
		boolean boo=false;
		try {
			int i = 0,j = 0;
			ResultSet rs=null;
			MainDAO dao = new MainDAO();
			String str = "select 借书上限,已借数量 from duzheziliao where 读者编号=?";
			pstmt = dao.getPreparedStatement(str);
			pstmt.setString(1,treaderNumber.getText());
			rs=pstmt.executeQuery();
		    if(rs.next()){
		    i=Integer.parseInt(rs.getString("借书上限"));
			j=rs.getInt("已借数量");
		    }
		    rs.close();
		    dao.close();
		    if(i-j==0){
		    	JOptionPane.showMessageDialog(table, "此读者借书数量已满,请还书后在借!!");
				readerClean();
		    }
		    else{
		    	boo=true;
		    }	
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return boo;
	}
	//检测图书是否存在,是否借出
	boolean bookJudge() throws SQLException{
		boolean boo = false;
		String bl = null;
		MainDAO dao = new MainDAO();
		ResultSet rs=null;
		if (!dao.Judge("select 图书编号 from tushuziliao", tbookNumber.getText(),
				"图书编号")) {
			JOptionPane.showMessageDialog(table, "此图书不存在,请确认图书编号输入是否正确!!");
			bookClean();
			}
		else
			{
				String str = "select 是否借出 from tushuziliao where 图书编号=?";
				pstmt = dao.getPreparedStatement(str);
				pstmt.setString(1,tbookNumber.getText());
				rs=pstmt.executeQuery();
				if(rs.next()){
					bl=rs.getString("是否借出");
				}
				if(bl.equals("是")){
					JOptionPane.showMessageDialog(table, "此图书已经借出,请确认输入的图书编号是否正确!!");
					bookClean();
				}
				else{
					boo=true;
				}
			}
		return boo;
	}
	
//	检测图书和读者是否都已经输入 如过都已输入借书按钮可以点击
	void okJudge(){
		if((!treaderName.getText().equals(""))&&(!tbookName.getText().equals(""))){
			jie.setEnabled(true);
		}
		else{
			jie.setEnabled(false);
		}
	}
	//读者资料清空
	void readerClean(){
		 treaderName.setText("");
	     tzBookNumber.setText("");
	     tjBookNumber.setText("");
	     tkBookNumber.setText("");
		
	}
	//图书资料清空
	void bookClean(){
		 tbookIsbn.setText("");
	     tbookName.setText("");
	     tbookPublish.setText("");
	     tbookType.setText("");
	     tbookPrice.setText("");
	     tremark.setText("");	
	}
	//全部清空
	void allClean(){
		 treaderNumber.setText("");
		 treaderName.setText("");
	     tzBookNumber.setText("");
	     tjBookNumber.setText("");
	     tkBookNumber.setText("");
	     
	     tbookNumber.setText("");
	     tbookIsbn.setText("");
	     tbookName.setText("");
	     tbookPublish.setText("");
	     tbookType.setText("");
	     tbookPrice.setText("");
	     tremark.setText("");

		table.setModel(new NowEditableModel());//JTable表清空
		table.updateUI();
	    jie.setEnabled(false);//借书按钮不可编辑
	}
	//获取增加i天后日期
	private String getDate(int i){
		   Calendar cal  = Calendar.getInstance();
		   java.util.Date myDate=new java.util.Date();  
		   long myTime;
		   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		   String mDateTime=formatter.format(cal.getTime());
		   String mDate=formatter.format(myDate);

		   myDate=new java.util.Date(); 
		   myTime=(myDate.getTime()/1000)+60*60*24*i;
		   myDate.setTime(myTime*1000);
		   mDate=formatter.format(myDate);
		   System.out.println(mDate);
            return mDate;   
	}
	//更新读者资料表,借出后借出数量和已借数量增加
	void readerAdd() throws SQLException{
		MainDAO dao = new MainDAO();
		String str = "update duzheziliao set 借出数量=?,已借数量=? where 读者编号=?";
		pstmt = dao.getPreparedStatement(str);
		pstmt.setString(1,String.valueOf(Integer.parseInt(tzBookNumber.getText())+1));
		pstmt.setInt(2,Integer.parseInt(tjBookNumber.getText())+1);
		pstmt.setInt(3,Integer.parseInt(treaderNumber.getText()));
		pstmt.executeUpdate();
		pstmt.close();
		dao.close();
		
	}
	
	//更新图书资料,设置图书的借出次数和是否借出属性
	void bookAdd() throws SQLException{
		MainDAO dao = new MainDAO();
		String str = "update tushuziliao set 是否借出=?,借出次数=? where 图书编号=?";
		pstmt = dao.getPreparedStatement(str);
		pstmt.setString(1,"是");
		pstmt.setInt(2,Integer.parseInt(tbookNumber.getText())+1);
		pstmt.setInt(3,Integer.parseInt(tbookNumber.getText()));
		pstmt.executeUpdate();
		pstmt.close();
		dao.close();
	}
	void add(){
		
		con.add(icon);
		
		con.add(readerNumber);
		con.add(treaderNumber);
		
		con.add(readerName);
		con.add(treaderName);
		
		con.add(zBookNumber);
		con.add(tzBookNumber);
		
		con.add(kBookNumber);
		con.add(tkBookNumber);
		
		con.add(jBookNumber);
		con.add(tjBookNumber);
		
		con.add(hBookTime);
		con.add(thBookTime);
		
		
		con.add(bookNumber);
		con.add(tbookNumber);
		
		con.add(bookIsbn);
		con.add(tbookIsbn);
		
		con.add(bookName);
		con.add(tbookName);
		
		con.add(bookPublish);
		con.add(tbookPublish);
		
		con.add(bookPrice);
		con.add(tbookPrice);
		
		con.add(bookType);
		con.add(tbookType);
		
		con.add(remark);
		
		
		con.add(scrool);
		con.add(scrool1);
		
		con.add(readerBook);
		
		con.add(ok);
		con.add(ok1);
		con.add(jie);
		con.add(quxiao);
		con.add(close);
		//con.validate();
	}

}

⌨️ 快捷键说明

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