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

本文主要是介绍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);}elseshowMsg("登录失败!");}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;elsestate= con.adduser(ID, pawd, Name, pho);if(state == 1) {showMsg("注册成功!");LoginMenu objLog = new LoginMenu();objLog.Menu();}elseshowMsg("注册失败!");f.dispose();}
}

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

package YLBlibrary;
//作者 swpu杨丽冰 201831064402import 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;//DJLabel lblNoLend,lblNameLend,lblIDLend ;JTextField txtNoLend,txtNameLend,txtIDLend;JButton btnLend;//EJLabel lblNoBorrow,lblIDBorrow ;JTextField txtNoBorrow,txtIDBorrow;JButton btnBorrow;//FJLabel 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();// 创建一个标签,用来显示文字,添加在NorthJLabel 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,居中组件areaShowResultpanelC.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);}//Epublic 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 blocke.printStackTrace();}if (evt.getSource() == btnANameToFind)try {selectAData();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}if (evt.getSource()  == btnLend)try {LendBook();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}if( evt.getSource() == btnBorrow)try {BorrowBook();} catch (Exception e) {// TODO Auto-generated catch blocke.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 blocke.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("借阅失败!");elseshowMsg("借阅成功!");}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("归还失败!");elseshowMsg("归还成功!");}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 blockshowMsg("图书更新失败!");e.printStackTrace();}}
}

这篇关于java+sql server 数据库实现英才大学图书管理系统 第一部分 连接数据库及界面实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056251

相关文章

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser