java+sql server 数据库实现英才大学图书管理系统 第一部分 连接数据库及界面实现

1.英才大学图书馆管理系统
功能点:用户登录、注册、密码修改,新增、修改、删除图书信息,实现图书外借与归还,查询图书信息(精确查找、模糊查找)

这个东西是数据库的一次实验
因为我常年不用java,这也算是一个java大型复健作业,不过由于对面向对象的思想,还有java的很多东西掌握不够牢固,在写的时候应该有很多莫名其妙的语法orz
另外建议swpu的朋友们还是仅供参考,找我要这份代码的人已经相当多了
下载地址:https://download.csdn.net/download/u011612364/13985581
百度网盘链接:https://pan.baidu.com/s/15kH3g5ifDuV4kssP4rL19g
提取码:np4u

一 数据库连接测试

首先是关于数据库的连接,老师也没有讲过,自己试了老久才连上,还是有很多坑的。
这里先给出一份测试连接的代码

import java.sql.*;
public class MySQLDemo {
    
    
	public static void main(String[] args) {
    
      
	       System.out.println("数据库原理及应用"); 
	     String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=MyDb";  //你要连的数据库
	      // Declare the JDBC objects.  
	      Connection con = null;  
	      Statement stmt = null;  
	      ResultSet rs = null;  
	      System.out.println("正在连接数据库和检索,请等待...");
	      try {
    
      
	         // Establish the connection.  
	         //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
	         con = DriverManager.getConnection(connectionUrl,"sa","123456");  //账号和密码,注意权限是否开了
	         // Create and execute an SQL statement that returns some data.  
	         String SQL = "select * from IpTable ";  //测试,改成你的表看是否成功
	         stmt = con.createStatement();  
	         rs = stmt.executeQuery(SQL);  
  
	         while (rs.next()) {
    
      
	            System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4));  
	         }  
	      }   
	      catch (Exception e) {
    
      
	         e.printStackTrace();  
	      }  
	      finally {
    
      
	         if (rs != null) try {
    
     rs.close(); } catch(Exception e) {
    
    }  
	         if (stmt != null) try {
    
     stmt.close(); } catch(Exception e) {
    
    }  
	         if (con != null) try {
    
     con.close(); } catch(Exception e) {
    
    }  
	      }  
	   }  
}

这一步的重点:
当然你想要连接的上数据库,你的连接账号权限设置肯定是不能忘记的。数据库初次下载后默认的是只有Windows身份验证模式,要将设置改一下。
在这里插入图片描述

然后还要在微软官网上下载对应的驱动包,导入eclipse,链接我也给一下https://docs.microsoft.com/zh-cn/sql/connect/jdbc/using-the-jdbc-driver?view=sql-server-2017
导入后的配置如图所示
在这里插入图片描述

二 界面部分

效果图如下
在这里插入图片描述

LoginMenu.java
package YLBlibrary;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class LoginMenu  extends JFrame{
    
    
	/*注册登陆按钮*/
	JFrame f = new JFrame("英才大学图书馆管理系统 By 201831064402杨丽冰");
	JButton button1 = new JButton("注册");
	JButton button2 = new JButton("登录");
	JButton button3 = new JButton("修改密码");
	JTextField id = new JTextField();
	JPasswordField password = new JPasswordField();
	public void Menu() {
    
    
		//改变窗口图标
		Toolkit t = Toolkit.getDefaultToolkit();
		Image img = t.getImage("src\\picture\\book.png");
		f.setIconImage(img);
		//设置窗口大小
		f.setSize(740,580);	
		//使窗口居中
		f.setLocationRelativeTo(null);
		
		//设置布局为空
		f.setLayout(null);
		
		//设置窗口背景图案
		Icon i = new ImageIcon("src\\picture\\photo1.jpg");
		JLabel jLable = new JLabel(i);
		jLable.setBounds(0, 0, 740, 580);
		
		
		JPanel panel1 = new JPanel();
		JPanel panel2 = new JPanel();
		JPanel panel3 = new JPanel();
		JPanel panel4 = new JPanel();
		JPanel panel5 = new JPanel();
		JPanel panel6 = new JPanel();
		
		
		/*添加大标题:图书管理系统*/
		JLabel lable = new JLabel("英才大学图书馆管理系统");
		Font font = new Font("宋体",Font.BOLD,30);//设置字体
		lable.setFont(font);
		panel1.add(lable);
		panel1.setBounds(130, 60, 380, 370);//设置面板大小
		f.add(panel1);
		
		
		/*用户类型标签*/
		JLabel user = new JLabel("用户类型  ");
		Font font1 = new Font("宋体",Font.BOLD,25);
		user.setFont(font1);
		panel2.add(user);
			
			
		/*用户类型的下拉框*/
		JComboBox<String> j = new JComboBox<String>();
		Dimension dimension = new Dimension(200,30);//框框的大小
		j.setPreferredSize(dimension);
		j.addItem("普通用户");
		j.addItem("管理员用户");
		Font font2 = new Font("宋体",Font.BOLD,15);
		j.setFont(font2);
		panel2.setBounds(90, 160, 400, 300);
		panel2.add(j);
		f.add(panel2);
		
		/*账号标签*/
		JLabel labid = new JLabel("   账号: ");
		Font font3 = new Font("宋体",Font.BOLD,25);	
		labid.setFont(font3);
		panel3.add(labid);
		
		/*输入账户的文本框*/
		id.setPreferredSize(dimension);
		panel3.add(id);
		panel3.setBounds(90, 230, 400, 300);
		f.add(panel3);
		
		
		/*密码标签*/
		JLabel labpassword = new JLabel("   密码: ");
		Font font4 = new Font("宋体",Font.BOLD,25);
		labpassword.setFont(font4);
		panel4.add(labpassword);
		
		/*输入密码文本框*/
		password.setPreferredSize(dimension);
		Font font5 = new Font("宋体",Font.BOLD,25);	
		password.setFont(font5);
		panel4.add(password);
		panel4.setBounds(90, 290, 400, 300);
		f.add(panel4);
		//按钮
		button1.setFont(font4);
		button2.setFont(font4);
		button3.setFont(font4);
		Dimension dimension2 = new Dimension(100,50);
		Dimension dimension3 = new Dimension(150,50);
		button1.setPreferredSize(dimension2);
		button2.setPreferredSize(dimension2);
		button3.setPreferredSize(dimension3);
		panel5.add(button1);
		panel6.add(button2);
		panel6.add(button3);
		panel5.setBounds(180, 370, 150, 400);
		panel6.setBounds(270, 370, 350, 400);
		f.add(panel5);
		f.add(panel6);
                //把组件变成透明
		panel1.setOpaque(false);
		panel2.setOpaque(false);
		panel3.setOpaque(false);
		panel4.setOpaque(false);
		panel5.setOpaque(false);
		panel6.setOpaque(false);
		
		f.add(jLable);
		//设置不可改变窗口大小
		f.setResizable(false);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// 给按钮注册事件侦听
		MyButtonListener listen = new MyButtonListener();
		button1.addActionListener(listen);
		button2.addActionListener(listen);
		button3.addActionListener(listen);
	}
	
	class MyButtonListener implements ActionListener {
    
    
		public void actionPerformed(ActionEvent evt) {
    
    
			// 根据事件源是不同按钮,调用不同的方法
			if (evt.getSource() == button3)
				FindPaw();
			if (evt.getSource() == button2)
				Login();
			if (evt.getSource() == button1)
				Register();
		}
	} 
	// 添加数据对应的代码封装在这里
	private void Login() {
    
    
		Contro con = new Contro();
		String ID = id.getText();
		String pawd = password.getText();
		int state = con.loginConf(ID, pawd);
		if(state == 1) {
    
    
			Globle gl =new Globle();
			User user =new User();
			user.setID(ID);
			gl.set(user);
			f.dispose();
			Mangament obj = new Mangament();
			obj.setSize(740, 580);
			obj.setVisible(true);
			obj.setLocationRelativeTo(null);
		}
		else
			showMsg("登录失败!");
	}
	
	private void showMsg(String sArgs) {
    
    
		JOptionPane.showMessageDialog(LoginMenu.this, sArgs);
	}
	
	private void Register() {
    
    
		f.dispose();
		RegisterMenu objRej = new RegisterMenu();
	}
	private void FindPaw() {
    
    
		f.dispose();
		FindPawMenu objRej = new FindPawMenu();
	}
	public static void main(String args[]) {
    
    
		LoginMenu obj = new LoginMenu();
		obj.Menu();
	}	
}

在这里插入图片描述
注册:

package YLBlibrary;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

 
public class RegisterMenu  extends JFrame {
    
    
	/*注册按钮*/
	 static JFrame f = new JFrame("英才大学图书馆管理系统 By 201831064402杨丽冰");
	 static JButton button1 = new JButton("注册");
	 JTextField id = new JTextField();
	 JPasswordField password = new JPasswordField();
	 JTextField name = new JTextField();
	 JTextField phone = new JTextField();
	 
	 JPanel panel1 = new JPanel();
	 JPanel panel2 = new JPanel();
	 JPanel panelID = new JPanel();
	 JPanel panelPassWord = new JPanel();
	 JPanel panelName = new JPanel();
	 JPanel panelPhone = new JPanel();
	 JPanel panel5 = new JPanel();
	 public RegisterMenu() {
    
     
		//改变窗口图标
		Toolkit t = Toolkit.getDefaultToolkit();
		Image img = t.getImage("src\\picture\\book.png");
		f.setIconImage(img);
		//设置窗口大小
		f.setSize(740,580);	
		//使窗口居中
		f.setLocationRelativeTo(null);
		//设置布局为空
		f.setLayout(null);
		//设置窗口背景图案
		Icon i = new ImageIcon("src\\picture\\photo1.jpg");
		JLabel jLable = new JLabel(i);
		jLable.setBounds(0, 0, 740, 580);
				
		/*添加大标题:图书管理系统*/
		JLabel lable = new JLabel("英才大学图书馆管理系统");
		Font font = new Font("宋体",Font.BOLD,30);//设置字体
		lable.setFont(font);
		panel1.add(lable);
		panel1.setBounds(130, 60, 380, 370);//设置面板大小
		f.add(panel1);
				
		/*用户类型标签*/
		JLabel user = new JLabel("用户类型  ");
		Font font1 = new Font("宋体",Font.BOLD,25);
		user.setFont(font1);
		panel2.add(user);
				
		/*用户类型的下拉框*/
		JComboBox<String> j = new JComboBox<String>();
		Dimension dimension = new Dimension(200,30);//框框的大小
		j.setPreferredSize(dimension);
		j.addItem("普通用户");
		j.addItem("管理员用户");
		Font font2 = new Font("宋体",Font.BOLD,15);
		j.setFont(font2);
		panel2.setBounds(90, 140, 400, 300);
		panel2.add(j);
		f.add(panel2);
		
		/*账号标签*/
		JLabel labid = new JLabel("   账号: ");
		Font font3 = new Font("宋体",Font.BOLD,25);	
		labid.setFont(font3);
		panelID.add(labid);
		
		/*输入账户的文本框*/
		id.setPreferredSize(dimension);
		panelID.add(id);
		panelID.setBounds(90, 180, 400, 300);
		f.add(panelID);
		
		/*密码标签*/
		JLabel labpassword = new JLabel("   密码: ");
		Font font4 = new Font("宋体",Font.BOLD,25);
		labpassword.setFont(font4);
		panelPassWord.add(labpassword);
		
		/*输入密码文本框*/
		password.setPreferredSize(dimension);
		Font font5 = new Font("宋体",Font.BOLD,25);	
		password.setFont(font5);
		panelPassWord.add(password);
		panelPassWord.setBounds(90, 220, 400, 300);
		f.add(panelPassWord);
		
		/*姓名标签*/
		JLabel labname = new JLabel("   姓名: ");
		Font font6 = new Font("宋体",Font.BOLD,25);
		labname.setFont(font6);
		panelName.add(labname);
		
		/*输入姓名文本框*/
		name.setPreferredSize(dimension);
		Font font7 = new Font("宋体",Font.BOLD,25);	
		name.setFont(font7);
		panelName.add(name);
		panelName.setBounds(90, 260, 400, 300);
		f.add(panelName);
		
		/*电话标签*/
		JLabel labphone = new JLabel("   电话: ");
		labphone.setFont(font6);
		panelPhone.add(labphone);
		
		/*输入电话文本框*/
		phone.setPreferredSize(dimension);
		phone.setFont(font7);
		panelPhone.add(phone);
		panelPhone.setBounds(90, 300, 400, 300);
		f.add(panelPhone);
		
		button1.setFont(font4);
		Dimension dimension2 = new Dimension(100,50);
		
		button1.setPreferredSize(dimension2);
		panel5.add(button1);
		panel5.setBounds(160, 350, 300, 400);
		f.add(panel5);

        //把组件变成透明
		panel1.setOpaque(false);
		panel2.setOpaque(false);
		panelID.setOpaque(false);
		panelPassWord.setOpaque(false);
		panelName.setOpaque(false);
		panelPhone.setOpaque(false);
		panel5.setOpaque(false);
	
		f.add(jLable);
		//设置不可改变窗口大小
		f.setResizable(false);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// 给按钮注册事件侦听
		MyButtonListener listen = new MyButtonListener();
		button1.addActionListener(listen);
	}
	
	class MyButtonListener implements ActionListener {
    
    
		public void actionPerformed(ActionEvent evt) {
    
    
			// 根据事件源是不同按钮,调用不同的方法
			if (evt.getSource() == button1)
				Register();
		}
	} 
	private void showMsg(String sArgs) {
    
    
		JOptionPane.showMessageDialog(RegisterMenu.this, sArgs);
	}
	
	// 对应的代码封装在这里
	private void Register() {
    
    
		String ID = id.getText();
		String pawd = password.getText();
		String Name = name.getText();
		String pho = phone.getText(); 
		//System.out.println(ID+" "+Name+" "+pawd+pho);

		Contro con = new Contro();
		int state;
		if(ID.length() == 0 || ID.equals(" "))
			state = 0;
		else
			state= con.adduser(ID, pawd, Name, pho);
		if(state == 1) {
    
    
			showMsg("注册成功!");
			LoginMenu objLog = new LoginMenu();
			objLog.Menu();
		}
		else
			showMsg("注册失败!");
		f.dispose();
	}
}

在这里插入图片描述
系统界面

package YLBlibrary;
//作者 swpu杨丽冰 201831064402

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.sql.*;

//Java图形用户界面
public class Mangament extends JFrame {
    
    
	JTabbedPane tabbedPane = new JTabbedPane(); // 选项卡
	JPanel panelA, panelB, panelC,panelD,panelE,panelF; // 选项卡上的面板
	// 面板A上的控件
	JLabel lblBno, lblBName, lblAName, lblPrice, lblPhone, lblEmail;
	JTextField txtBno, txtBName, txtAName, txtPrice, txtEmail;
	JButton btnInsertData, buttonCancel;

	// 面板B上的控件
	JLabel lblNoToDel;
	JTextField txtNoToDel;
	JButton btnNoToDel;

	// 面板C上的控件
	JLabel lblNameToFind,lblANameToFind;
	JTextField txtNameToFind,txtANameToFind;
	JButton btnNameToFind,btnANameToFind;
	JTextArea areaShowResult;

		
	//D
	JLabel lblNoLend,lblNameLend,lblIDLend ;
	JTextField txtNoLend,txtNameLend,txtIDLend;
	JButton btnLend;
	
	//E
	JLabel lblNoBorrow,lblIDBorrow ;
	JTextField txtNoBorrow,txtIDBorrow;
	JButton btnBorrow;
	
	//F
	JLabel lblPoint,lblUpBno, lblUpBName, lblUpAName, lblUpPrice, lblUpPhone, lblUpEmail;
	JTextField txtUpBno, txtUpBName, txtUpAName, txtUpPrice, txtUpEmail;
	JButton btnUpData, buttonUpCancel;
	// 构造方法
	
	
	public Mangament() {
    
    
		super("(英才大学图书馆管理系统 By 201831064402杨丽冰)"); // 设置窗口标题栏文字
		//图标
		Toolkit t = Toolkit.getDefaultToolkit();
		Image img = t.getImage("src\\picture\\book.png");
		this.setIconImage(img);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		tabbedPane = new JTabbedPane();
		panelA = new JPanel();
		panelB = new JPanel();
		panelC = new JPanel();
		panelD = new JPanel();
		panelE = new JPanel();
		panelF = new JPanel();
		tabbedPane.add("添加图书", panelA);
		tabbedPane.add("删除图书", panelB);
		tabbedPane.add("查询图书", panelC);
		tabbedPane.add("更新图书", panelF);
		tabbedPane.add("借阅图书", panelD);
		tabbedPane.add("归还图书", panelE);
	
//		Icon i = new ImageIcon("src\\picture\\3.jpg");
//		JLabel jLable = new JLabel(i);
//		jLable.setBounds(0, 400, 740, 180);
//		this.add(jLable);
		// 调用方法,往面板上添加组件
		addControlToPanelAdd();
		addControlToPanelDel();
		addControlToPanelQuery();
		addControlToPanelLend();
		addControlToPanelUpdate();
		addControlToPanelBorrow();
		
		// 创建一个标签,用来显示文字,添加在North
		JLabel labelTitle = new JLabel("英才大学图书馆管理系统");
		Globle gl =new Globle();
		User user =new User();
		user = gl.get();
		JLabel labelWelcome = new JLabel("欢迎您用户"+user.getID()+"!");
		labelTitle.setFont(new Font(null, Font.BOLD, 36)); // 设置字体
		labelTitle.setForeground(new Color(60, 60, 160)); // 设置颜色
		JPanel pane1 = new JPanel(); 
		pane1.add(labelTitle);
		pane1.add(labelWelcome);
		getContentPane().add("North", pane1);
		// 添加选项卡组件到居中位置
		getContentPane().add("Center", tabbedPane);
		//按键响应
		MyButtonListener listen = new MyButtonListener();
		btnInsertData.addActionListener(listen);
		btnNoToDel.addActionListener(listen);
		btnNameToFind.addActionListener(listen);
		btnANameToFind.addActionListener(listen);
		btnLend.addActionListener(listen);
		btnUpData.addActionListener(listen);
		btnBorrow.addActionListener(listen);
		
	} 

	// 添加控件到面板B(删除数据)上的方法
	public void addControlToPanelDel() {
    
    
		lblNoToDel = new JLabel("请输入要删除的图书编号:");
		txtNoToDel = new JTextField("", 15);
		btnNoToDel = new JButton("删除");
		panelB.add(lblNoToDel);
		panelB.add(txtNoToDel);
		panelB.add(btnNoToDel);
	}

	// 添加控件到面板C(查询数据)上的方法
	public void addControlToPanelQuery() {
    
    
		lblNameToFind = new JLabel("请输入要查询的书名(支持模糊查询)");
		txtNameToFind = new JTextField("", 6);
		btnNameToFind = new JButton("查询");
		lblANameToFind = new JLabel("请输入要查询的作者名(支持模糊查询)");
		txtANameToFind = new JTextField("", 6);
		btnANameToFind = new JButton("查询");
		areaShowResult = new JTextArea(20, 80); // 20行,80列

		JPanel pTmp = new JPanel(new GridLayout(2,3));
		pTmp.add(lblNameToFind);
		pTmp.add(txtNameToFind);
		pTmp.add(btnNameToFind);
		pTmp.add(lblANameToFind);
		pTmp.add(txtANameToFind);
		pTmp.add(btnANameToFind);
		
		// 面板C采用边界布局,上方是输入信息组件,下方是显示信息组件
		BorderLayout bl = new BorderLayout();
		panelC.setLayout(bl);

		// 面板C的靠上组件pTmp,居中组件areaShowResult
		panelC.add("North", pTmp);
		panelC.add("Center", areaShowResult);
	}

	// 添加控件到面板A上的方法
	public void addControlToPanelAdd() {
    
    
		lblBno = new JLabel("书本编号 *  ");
		lblBName = new JLabel("书名 *  ");
		lblAName = new JLabel("作者姓名 *  "); // 标签后面跟上1个星号提醒用户,这是必须输入的字段
		lblPrice = new JLabel("书本单价");
		lblPhone = new JLabel("电话号码");
		//lblEmail = new JLabel("电子邮箱");

		txtBno = new JTextField("", 12);
		txtBName = new JTextField("", 10);
		txtAName = new JTextField("", 10);
		txtPrice = new JTextField("", 15);
		//txtEmail = new JTextField("", 18);

		btnInsertData = new JButton("添加");
		buttonCancel = new JButton("清空");
		// 对当前面板设置布局管理
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.anchor = GridBagConstraints.NORTHWEST;
		panelA.setLayout(gbl);
		// 添加控件 第1行
		gbc.gridy = 1;
		gbc.gridx = 1;
		gbl.setConstraints(lblBno, gbc);
		panelA.add(lblBno);
		gbc.gridy = 1;
		gbc.gridx = 2;
		gbl.setConstraints(txtBno, gbc);
		panelA.add(txtBno);
		// 添加控件 第2行
		gbc.gridy = 2;
		gbc.gridx = 1;
		gbl.setConstraints(lblBName, gbc);
		panelA.add(lblBName);
		gbc.gridy = 2;
		gbc.gridx = 2;
		gbl.setConstraints(txtBName, gbc);
		panelA.add(txtBName);
		//
		gbc.gridy = 3;
		gbc.gridx = 1;
		gbl.setConstraints(lblAName, gbc);
		panelA.add(lblAName);
		gbc.gridy = 3;
		gbc.gridx = 2;
		gbl.setConstraints(txtAName, gbc);
		panelA.add(txtAName);
		// 添加控件 第4行
		gbc.gridy = 4;
		gbc.gridx = 1;
		gbl.setConstraints(lblPrice, gbc);
		panelA.add(lblPrice);
		gbc.gridy = 4;
		gbc.gridx = 2;
		gbl.setConstraints(txtPrice, gbc);
		panelA.add(txtPrice);
//		// 添加控件 第5行
//		gbc.gridy = 5;
//		gbc.gridx = 1;
//		gbl.setConstraints(lblEmail, gbc);
//		panelA.add(lblEmail);
//		gbc.gridy = 5;
//		gbc.gridx = 2;
//		gbl.setConstraints(txtEmail, gbc);
//		panelA.add(txtEmail);

		// 添加控件 第7行
		gbc.gridy = 7;
		gbc.gridx = 3;
		gbl.setConstraints(btnInsertData, gbc);
		panelA.add(btnInsertData);
		gbc.gridy = 7;
		gbc.gridx = 4;
		gbl.setConstraints(buttonCancel, gbc);
		panelA.add(buttonCancel);
	}
	//添加控件到面板D上的方法
	public void addControlToPanelLend() {
    
    
		lblNoLend = new JLabel("请输入要借阅的图书编号:");
		txtNoLend = new JTextField("", 15);
		lblNameLend = new JLabel("请输入你的姓名:");
		txtNameLend = new JTextField("", 15);
		lblIDLend = new JLabel("请输入你的借阅证号(账号):");
		txtIDLend = new JTextField("", 15);
		btnLend = new JButton("借阅");
		
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.anchor = GridBagConstraints.NORTHWEST;
		panelD.setLayout(gbl);
		gbc.gridy = 1;
		gbc.gridx = 1;
		gbl.setConstraints(lblNoLend, gbc);
		panelD.add(lblNoLend);
		gbc.gridy = 1;
		gbc.gridx = 2;
		gbl.setConstraints(txtNoLend, gbc);
		panelD.add(txtNoLend);
		gbc.gridy = 2;
		gbc.gridx = 1;
		gbl.setConstraints(lblNameLend, gbc);
		panelD.add(lblNameLend);
		gbc.gridy = 2;
		gbc.gridx = 2;
		gbl.setConstraints(txtNameLend, gbc);
		panelD.add(txtNameLend);
		gbc.gridy = 3;
		gbc.gridx = 1;
		gbl.setConstraints(lblIDLend, gbc);
		panelD.add(lblIDLend);
		gbc.gridy = 3;
		gbc.gridx = 2;
		gbl.setConstraints(txtIDLend, gbc);
		panelD.add(txtIDLend);
		gbc.gridy = 4;
		gbc.gridx = 2;
		gbl.setConstraints(btnLend, gbc);
		panelD.add(btnLend);
	}
	
	//E
	public void addControlToPanelBorrow() {
    
    
		lblNoBorrow = new JLabel("请输入要归还的图书编号:");
		txtNoBorrow = new JTextField("", 15);
		lblIDBorrow = new JLabel("请输入你的借阅证号(账号):");
		txtIDBorrow = new JTextField("", 15);
		btnBorrow = new JButton("归还");
		
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.anchor = GridBagConstraints.NORTHWEST;
		panelE.setLayout(gbl);
		gbc.gridy = 1;
		gbc.gridx = 1;
		gbl.setConstraints(lblNoBorrow, gbc);
		panelE.add(lblNoBorrow);
		gbc.gridy = 1;
		gbc.gridx = 2;
		gbl.setConstraints(txtNoBorrow, gbc);
		panelE.add(txtNoBorrow);
		gbc.gridy = 2;
		gbc.gridx = 1;
		gbl.setConstraints(lblIDBorrow, gbc);
		panelE.add(lblIDBorrow);
		gbc.gridy = 2;
		gbc.gridx = 2;
		gbl.setConstraints(txtIDBorrow, gbc);
		panelE.add(txtIDBorrow);
		gbc.gridy = 3;
		gbc.gridx = 2;
		gbl.setConstraints(btnBorrow, gbc);
		panelE.add(btnBorrow);
	}
	//添加控件到面板F上的方法
	public void  addControlToPanelUpdate(){
    
    
		lblPoint = new JLabel("请输入您要更新的图书信息 ");
		lblUpBno = new JLabel("书本编号 *  ");
		lblUpBName = new JLabel("书名 *  ");
		lblUpAName = new JLabel("作者姓名 *  "); // 标签后面跟上1个星号提醒用户,这是必须输入的字段
		lblUpPrice = new JLabel("书本单价");
		lblUpPhone = new JLabel("电话号码");
		//lblEmail = new JLabel("电子邮箱");

		txtUpBno = new JTextField("", 12);
		txtUpBName = new JTextField("", 10);
		txtUpAName = new JTextField("", 10);
		txtUpPrice = new JTextField("", 15);
		//txtEmail = new JTextField("", 18);

		btnUpData = new JButton("更新");
		buttonUpCancel = new JButton("清空");
		// 对当前面板设置布局管理
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.anchor = GridBagConstraints.NORTHWEST;
		panelF.setLayout(gbl);
		// 添加控件 第1行
		gbc.gridy = 1;
		gbc.gridx = 1;
		gbl.setConstraints(lblUpBno, gbc);
		panelF.add(lblUpBno);
		gbc.gridy = 1;
		gbc.gridx = 2;
		gbl.setConstraints(txtUpBno, gbc);
		panelF.add(txtUpBno);
		// 添加控件 第2行
		gbc.gridy = 2;
		gbc.gridx = 1;
		gbl.setConstraints(lblUpBName, gbc);
		panelF.add(lblUpBName);
		gbc.gridy = 2;
		gbc.gridx = 2;
		gbl.setConstraints(txtUpBName, gbc);
		panelF.add(txtUpBName);
		//
		gbc.gridy = 3;
		gbc.gridx = 1;
		gbl.setConstraints(lblUpAName, gbc);
		panelF.add(lblUpAName);
		gbc.gridy = 3;
		gbc.gridx = 2;
		gbl.setConstraints(txtUpAName, gbc);
		panelF.add(txtUpAName);
		// 添加控件 第4行
		gbc.gridy = 4;
		gbc.gridx = 1;
		gbl.setConstraints(lblUpPrice, gbc);
		panelF.add(lblUpPrice);
		gbc.gridy = 4;
		gbc.gridx = 2;
		gbl.setConstraints(txtUpPrice, gbc);
		panelF.add(txtUpPrice);

		// 添加控件 第7行
		gbc.gridy = 7;
		gbc.gridx = 3;
		gbl.setConstraints(btnUpData, gbc);
		panelF.add(btnUpData);
		gbc.gridy = 7;
		gbc.gridx = 4;
		gbl.setConstraints(buttonUpCancel, gbc);
		panelF.add(buttonUpCancel);
	}
	// 显示提示信息的方法
	private void showMsg(String sArgs) {
    
    
		JOptionPane.showMessageDialog(Mangament.this, sArgs);
	}

	class MyButtonListener implements ActionListener {
    
    
		public void actionPerformed(ActionEvent evt) {
    
    
			// 根据事件源是不同按钮,调用不同的方法
			if (evt.getSource() == btnInsertData)
				insertData();
			if (evt.getSource() == btnNoToDel)
				deleteData();
			if (evt.getSource() == btnNameToFind)
				try {
    
    
					selectData();
				} catch (Exception e) {
    
    
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if (evt.getSource() == btnANameToFind)
				try {
    
    
					selectAData();
				} catch (Exception e) {
    
    
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if (evt.getSource()  == btnLend)
				try {
    
    
					LendBook();
				} catch (Exception e) {
    
    
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if( evt.getSource() == btnBorrow)
				try {
    
    
					BorrowBook();
				} catch (Exception e) {
    
    
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if(evt.getSource()==btnUpData)
				updateData();
		}
	} // end of class MyButtonListener

	// 添加数据对应的代码封装在这里
	private void insertData() {
    
    
		String BNo = txtBno.getText();
		int id = Integer.parseInt(BNo);
		String BName = txtBName.getText();
		String AName = txtAName.getText();
		String Price = txtPrice.getText();
		double price = Double.parseDouble(Price);
		String sSapce = "    ";// 四个空格
		String sTmp = BNo + sSapce + BName + AName + Price ;
		showMsg("图书添加成功!");
		Contro control = new Contro();
		try {
    
    
			control.addbook(id, BName, AName, price);
		} catch (Exception e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// 删除数据对应的代码封装在这里
	private void deleteData() {
    
    
		String BNo = txtNoToDel.getText();
		int id = Integer.parseInt(BNo);
		Contro control = new Contro();
		control.deletebook(id);
		showMsg("您要删除的书本号是:" + BNo+",删除成功!");
	}

	// 查询数据对应的代码封装在这里
	private void selectData() throws Exception {
    
    
		String BName = txtNameToFind.getText();
		showMsg("您要查询的书本信息:" + BName);
		Contro control = new Contro();
		control.qury(areaShowResult, "name", BName);
	}
	
	private void selectAData() throws Exception {
    
    
		String AName = txtANameToFind.getText();
		showMsg("您根据作者查询的信息:" + AName);
		Contro control = new Contro();
		control.qury(areaShowResult, "aname", AName);
	}
	
	private void LendBook() throws Exception {
    
    
		String ID = txtNoLend.getText();
		int id =Integer.parseInt(ID);
		String name = txtNameLend.getText();
		String Uid = txtIDLend.getText();
		showMsg(name+"您要借阅的图书编号:"+id);
		Contro con = new Contro();
		if(con.lend(id, name, Uid)== 0)
			showMsg("借阅失败!");
		else
			showMsg("借阅成功!");
	}
	
	private void BorrowBook() throws Exception {
    
    
		String ID = txtNoBorrow.getText();
		int id =Integer.parseInt(ID);
		String Uid = txtIDBorrow.getText();
		showMsg("您要归还的图书编号:"+id);
		Contro con = new Contro();
		if(con.borrow(id,Uid)== 0)
			showMsg("归还失败!");
		else
			showMsg("归还成功!");
	}
	
	private void updateData() {
    
    
		String BNo = txtUpBno.getText();
		int id = Integer.parseInt(BNo);
		String BName = txtUpBName.getText();
		String AName = txtUpAName.getText();
		String Price = txtUpPrice.getText();
		String sSapce = "    ";// 四个空格
		String sTmp = BNo + sSapce + BName + AName + Price ;
		System.out.println( sTmp );
		Contro control = new Contro();
		try {
    
    
			control.updatebook(id, BName,Price , AName);
			showMsg("图书更新成功!");
		} catch (Exception e) {
    
    
			// TODO Auto-generated catch block
			showMsg("图书更新失败!");
			e.printStackTrace();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/u011612364/article/details/110672368