学生管理系统

学生管理系统

使用技术

GUI JDBC IO DB
登录界面

在这里插入图片描述

主界面

在这里插入图片描述

增删改查

在这里插入图片描述

数据库表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用前需知

1、注意修改数据库的用户名以及密码
2、数据库表设计序保持一致(懂的也既可以修改)
3、记得修改IO读写路径
4、窗体大小是经过计算的,不建议进行修改
如果您觉得本文有帮助,请点赞支持,您的鼓励就是我最大的动力,感谢!

源码

StudentSystem
public class StudentSystem {
	public static void main(String args[]) {
		new LoginJFrame();
	}
}
LoginJFrame
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JButton;
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 LoginJFrame extends JFrame{

	LoginJFrame loginJFrame=this;

	//定义窗体中的组件

	//1系统的标题组件
	JLabel title=new JLabel("学生信息管理系统",JLabel.CENTER);

	//2输入框的组件
	JLabel usernameJLabel=new JLabel("用户名");
	JTextField usernameField=new JTextField();

	JLabel passwordJLabel=new JLabel("密 码");
	JPasswordField passwordField=new JPasswordField();

	//3登陆和重置按钮
	JButton login=new JButton("登陆");
	JButton reset=new JButton("重置");
	JButton register=new JButton("注册");


	//4创建一个面板对象,用于存放输入框和按钮等组件
	JPanel mainJPanel=new JPanel(null);


	Container panel=this.getContentPane();

	public LoginJFrame() {
		addComonent();
		addAction();
		this.setSize(600,400);
		this.setTitle("学生管理系统");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//		this.setIconImage(ResourceUtil.icon);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setVisible(true);
	}


	//定义一个方法用于为窗体添加组件
	public void addComonent() {
		//添加标题			将标题添加到窗体自带的面板
		title.setFont(new Font("楷体",Font.BOLD,45));
		panel.add(title,BorderLayout.NORTH);

		usernameJLabel.setFont(new Font("楷体",Font.BOLD,20));
		usernameJLabel.setBounds(150,50,100,30);
		mainJPanel.add(usernameJLabel);
		usernameField.setBounds(230,50,200,30);
		mainJPanel.add(usernameField);


		passwordJLabel.setFont(new Font("楷体",Font.BOLD,20));
		passwordJLabel.setBounds(155,100,100,30);
		mainJPanel.add(passwordJLabel);
		passwordField.setBounds(230,100,200,30);
		mainJPanel.add(passwordField);

		login.setBounds(150,150,80,30);
		reset.setBounds(250,150,80,30);
		register.setBounds(350,150,80,30);

		mainJPanel.add(login);
		mainJPanel.add(reset);
		mainJPanel.add(register);


		panel.add(mainJPanel,BorderLayout.CENTER);

	}

	//定义一个方法完成登录和重置按钮的操作
	public void addAction() {
		reset.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				//确定按的是重置的按钮
				Object source=e.getSource();
				JButton jButton=(JButton)source;

				//判断是否是重置的按钮
				if(jButton.getText().equals("重置")) {
					//将用户和密码框直接置为""
					usernameField.setText("");
					passwordField.setText("");
				}
			}
		});

		//为登录按钮添加事件
		login.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				String usernameInput=usernameField.getText();
				String passwordInput=new String(passwordField.getPassword());
				if(isLogin(usernameInput,passwordInput)) {
					System.out.println("登陆成功");
					//显示系统的主窗体
					new MainJFrame();
					//销毁当前的登陆窗体
					loginJFrame.dispose();
				}
				else {
					//弹出框
					JOptionPane.showMessageDialog(login, "登录失败,请检查用户名或密码!");
				}
			}
		});

		//为注册添加事件
		register.addActionListener(new ActionListener () {
			@Override
			public void actionPerformed(ActionEvent e) {
				new RegisterJFrame(loginJFrame);
			}
		});
	}
	//定义一个方法,判断是否可以登录
	public boolean isLogin(String usernameInput,String passwordInput) {
		boolean f=false;
		String sql="select password from admin where username=?";
		Connection connection=null;
		PreparedStatement prepareStatement=null;
		ResultSet resultSet=null;
		connection=DBUtil.getConnection();
		try {
			//3通过连接对象,获取执行语句的对象,将sql语句传入
			prepareStatement=connection.prepareStatement(sql);
			//4设置 ? 是谁
			prepareStatement.setString(1,usernameInput);		//从第一个?开始
			//5执行sql语句
			resultSet=prepareStatement.executeQuery();
			//6结果集中就有我们查询到的结果
			while(resultSet.next()) {			//当有结果的时候
				//获取结果   查询到的密码
				String password=resultSet.getString(1);
				//判断获取到的密码是否和输入的密码一致
				if(passwordInput.equals(password)) {
					f=true;
				}
			}
		}
		catch(Exception e) {
		}
		finally {
			//关闭连接
			DBUtil.closeConnection(connection);
			DBUtil.closePreparedStatement(prepareStatement);
			DBUtil.closeResultSet(resultSet);
		}
		return f;
	}
}
ResourceUtil
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ResourceUtil {
	public static  BufferedImage icon = ResourceUtil.getImage("icon.png");
	//定义一个静态方法完成图片的读取
	public static BufferedImage getImage(String imageName) {

		BufferedImage bufferedImage = null;
		try {
//			此处为;logo图标,可自定义,记得修改路径
			bufferedImage =  ImageIO.read(new File("F:\\javaTest\\workspace\\RPrac\\Test\\src\\image/"+imageName));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return bufferedImage;
	}
}
DBUtil
import java.sql.*;

public class DBUtil {
    static final String URL = "jdbc:mysql://localhost:3306/jinhuan?useUnicode=true&characterEncoding=utf-8";
    static final String DRIVER = "com.mysql.jdbc.Driver";
//    数据库的账号密码
    static final String USER_NAME = "账户名";
    static final String PASSWORD = "密码";

    static {
        try {
            Class.forName(DRIVER);//加载驱动

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //获取数据库连接
    public static Connection getConnection(){
        try {
            return DriverManager.getConnection(URL, USER_NAME, PASSWORD);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }

    //关闭连接
    public static void closeConnection(Connection connection){
        if (connection != null){
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    public static void closePreparedStatement(PreparedStatement preparedStatement){
        if (preparedStatement!=null){
            try {
                preparedStatement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    public static void closeResultSet(ResultSet resultSet){
        if (resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}
MainJFrame
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class MainJFrame extends JFrame {
	MainJFrame mainJFrame = this;

	// 创建主窗体的组件
	// 三个按钮
	JButton addButton = new JButton("增加");
	JButton updateButton = new JButton("修改");
	JButton deleteButton = new JButton("删除");
	JButton inquireButton = new JButton("查询");

	// 创建一个按钮菜单面板
	JPanel menuJPanel = new JPanel(new FlowLayout());// 采用流式布局

	// 创建一个可以滚动的面板
	JScrollPane tableJPanel;
	// 创建一个集合 二维集合
	// tableData 就是一个集合 这个集合中存放的数据 又是一个集合对象<object>
	Vector<Vector<Object>> tableData;

	// 创建一个标题集合 ---> 属于 tableData 中的一个元素 第一个元素
	Vector<String> tableTitle;

	// 创建一个数据集合
	Vector<Object> data;

	// 创建一个表格
	JTable messageJTable;

	// 构造方法完成窗体的初始化
	Container contentPane = this.getContentPane();

	public MainJFrame() {
		tableData = new Vector<Vector<Object>>();
		tableTitle = new Vector<String>();
		// 初始化表头集合
		tableTitle.add("编号");
		tableTitle.add("姓名");
		tableTitle.add("学号");
		tableTitle.add("班级");
		tableTitle.add("籍贯");
		selectALl();
		// 将表头的数据添加到 表格集合中 作为第一个元素
		messageJTable = new JTable(tableData, tableTitle);

		addComponent();
		addAction();
		this.setTitle("欢迎使用学生管理系统");
		this.setIconImage(ResourceUtil.icon);
		this.setSize(1600, 900);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
	}

	public void selectALl() {

		// 从数据库中进行查询
		// 1 书写sql语句
		String sql = " select * from stu ";// ? 就是以后要使用 usernameInput 替换的内容

		// 2 获取连接
		Connection connection = null;
		PreparedStatement prepareStatement = null;
		ResultSet resultSet = null;
		connection = DBUtil.getConnection();
		try {
			// 3 通过连接对象 获取执行语句的对象 将sql语句传入
			prepareStatement = connection.prepareStatement(sql);
			// 4 执行sql语句
			resultSet = prepareStatement.executeQuery();
			// 6 结果集中就有我们查询到的结果
			while (resultSet.next()) {// 当有结果的时候
				// 获取结果 id name code clazz address
				int id = resultSet.getInt("id");
				String name = resultSet.getString("name");
				String code = resultSet.getString("code");
				String clazz = resultSet.getString("clazz");
				String address = resultSet.getString("address");

				// System.out.println(id + "--"+ name +"--"+ code + "--"+ clazz+"--"+ address);
				// 将获得的结果 作为一个集合传入
				Vector data = new Vector();
				data.add(id);
				data.add(name);
				data.add(code);
				data.add(clazz);
				data.add(address);

				// 将 data 作为一个数据添加到
				tableData.add(data);
			}

		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			// 关闭连接
			DBUtil.closeConnection(connection);
			DBUtil.closePreparedStatement(prepareStatement);
			DBUtil.closeResultSet(resultSet);
		}

	}

	// 定义一个方法 用于查询所有的数据

	//	定义一个方法完成组件的添加
	public void addComponent() {
		// 设置当前窗体的默认的面板的布局
		contentPane.setLayout(new BorderLayout());

		// 菜单面板
		menuJPanel.add(addButton);
		menuJPanel.add(updateButton);
		menuJPanel.add(deleteButton);
		menuJPanel.add(inquireButton);

		// 将菜单按钮面板 添加到 当前窗体中
		contentPane.add(menuJPanel, BorderLayout.NORTH);

		tableJPanel = new JScrollPane(messageJTable);// 将表格作为一个参数传入

		// 将表格面板 添加到当前窗体面板 的 中间
		contentPane.add(tableJPanel, BorderLayout.CENTER);
	}

	// 定义一个方法完成按钮事件的添加

	public void addAction() {
		// 增加按钮
		addButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				//当点击增加按钮的时候 会跳出一个框框
				new AddJFrame(mainJFrame);

			}
		});

		// 修改按钮
		updateButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				new InputIdJFrame(mainJFrame);

			}
		});

		// 删除按钮
		deleteButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				new DeleteJFrame(mainJFrame);
			}
		});

		//查询按钮
		inquireButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				new InquireJFrame(mainJFrame);

			}
		});
	}
}
RegisterJFrame
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class RegisterJFrame extends JFrame{
    RegisterJFrame registerJFrame = this;
    LoginJFrame loginJFrame;

    // 增加组件
    JLabel nameJLabel = new JLabel("用户名:");
    JLabel passJLabel = new JLabel("密码:");


    JTextField zxuser = new JTextField();
    JTextField zxpass = new JTextField();
    // 按钮
    JButton admin01 = new JButton("确定");

    // 创建一个面板
    JPanel panel = new JPanel(null);

    // 构造方法完成初始化
    public RegisterJFrame(LoginJFrame loginJFrame) {
        this.loginJFrame = loginJFrame;
        addComponent();
        addAction();
        this.setTitle("添加管理员");
        this.setIconImage(ResourceUtil.icon);
        this.setSize(400, 300);
        this.setLocationRelativeTo(null);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.add(panel);
        this.setVisible(true);
    }

    // 定义一个方法完成 组件的添加
    public void addComponent() {
        int d = 30;
        // 设置组件的尺寸
        nameJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
        nameJLabel.setBounds(90, 48, 60, 30);
        zxuser.setBounds(160, 50, 100, 25);
        panel.add(nameJLabel);
        panel.add(zxuser);

        passJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
        passJLabel.setBounds(97, 48 + d, 60, 30);
        zxpass.setBounds(160, 50 + d, 100, 25);
        panel.add(passJLabel);
        panel.add(zxpass);

        // 按钮
        admin01.setBounds(150, 50 + 5 * d, 60, 25);
        panel.add(admin01);

    }

    // 定义一个方法用于为按钮添加事件
    public void addAction() {
        admin01.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取焦点
                JButton s = (JButton) e.getSource();
                // 判断是否是提交的按钮
                if (s.getText().equals("确定")) {

                    // 获取输入框中的所有的数据
                    String name = zxuser.getText();
                    String pass = zxpass.getText();

                    // 将获取到的数据 添加到 数据库中
                    // 1 书写sql语句

                    String sql = "insert into admin(username, password) VALUES (?,?) ";

                    // 2 获取连接
                    Connection connection = null;
                    PreparedStatement prepareStatement = null;
                    try {
                        connection = DBUtil.getConnection();
                        // 3 通过连接对象 获取执行语句的对象 将sql语句传入
                        prepareStatement = connection.prepareStatement(sql);
                        // 4  设置每个? 是什么
                        prepareStatement.setString(1, name);
                        prepareStatement.setString(2, pass);

                        // 5 执行 返回值 表示 有几行受到影响
                        int i  =0;
                        i = prepareStatement.executeUpdate();
                        System.out.print(i);
                        // 6 判断是否成功插入
                        if (i==1) {
                            // 更新表的数据 相当于重新查了一次
                            // 主界面 销毁
                            loginJFrame.dispose();
                            // 添加界面销毁
                            registerJFrame.dispose();
                            // 重新创建一个新的主界面
                            //new MainJFrame();
                            JOptionPane.showMessageDialog(registerJFrame, "添加管理员成功");
                        }else {
                            JOptionPane.showMessageDialog(registerJFrame, "插入失败");
                        }



                    } catch (Exception e11) {
                        // TODO: handle exception
                    } finally {
                        // 关闭连接
                        DBUtil.closeConnection(connection);
                        DBUtil.closePreparedStatement(prepareStatement);
                    }
                }

            }
        });
    }
}
RegisterMainJFrame
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class RegisterMainJFrame extends JFrame {
    RegisterMainJFrame registerMainJFrame = this;
    MainJFrame mainJFrame;
    static String id;
    // 创建主窗体的组件
    // 三个按钮
    JButton addButton = new JButton("增加");
    JButton updateButton = new JButton("修改");
    JButton deleteButton = new JButton("删除");
    JButton inquireButton = new JButton("查询");

    // 创建一个按钮菜单面板
    JPanel menuJPanel = new JPanel(new FlowLayout());// 采用流式布局

    // 创建一个可以滚动的面板
    JScrollPane tableJPanel;
    // 创建一个集合 二维集合
    // tableData 就是一个集合 这个集合中存放的数据 又是一个集合对象<object>
    Vector<Vector<Object>> tableData;

    // 创建一个标题集合 ---> 属于 tableData 中的一个元素 第一个元素
    Vector<String> tableTitle;

    // 创建一个数据集合
    Vector<Object> data;

    // 创建一个表格
    JTable messageJTable;

    // 构造方法完成窗体的初始化
    Container contentPane = this.getContentPane();

    public RegisterMainJFrame(String id) {
        this.id=id;
        tableData = new Vector<Vector<Object>>();
        tableTitle = new Vector<String>();
        // 初始化表头集合
        tableTitle.add("编号");
        tableTitle.add("姓名");
        tableTitle.add("学号");
        tableTitle.add("班级");
        tableTitle.add("籍贯");
        selectALl();
        // 将表头的数据添加到 表格集合中 作为第一个元素
        messageJTable = new JTable(tableData, tableTitle);

        addComponent();
        addAction();
        this.setTitle("欢迎使用学生管理系统");
        this.setIconImage(ResourceUtil.icon);
        this.setSize(1600, 900);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }



    public void selectALl() {

        // 从数据库中进行查询
        // 1 书写sql语句
        String sql = " select * from stu where id=?";// ? 就是以后要使用 usernameInput 替换的内容

        // 2 获取连接
        Connection connection = null;
        PreparedStatement prepareStatement = null;
        ResultSet resultSet = null;
        connection = DBUtil.getConnection();
        try {
            connection = DBUtil.getConnection();
            // 3 通过连接对象 获取执行语句的对象 将sql语句传入
            prepareStatement = connection.prepareStatement(sql);
            // 4 设置每个? 是什么
            prepareStatement.setInt(1, Integer.parseInt(id));

            resultSet=prepareStatement.executeQuery();
            // 6 结果集中就有我们查询到的结果
            while(resultSet.next()) {// 当有结果的时候
                // 获取结果 id name code clazz address
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String code = resultSet.getString("code");
                String clazz = resultSet.getString("clazz");
                String address = resultSet.getString("address");

                // System.out.println(id + "--"+ name +"--"+ code + "--"+ clazz+"--"+ address);
                // 将获得的结果 作为一个集合传入
                Vector data = new Vector();
                data.add(id);
                data.add(name);
                data.add(code);
                data.add(clazz);
                data.add(address);

                // 将 data 作为一个数据添加到
                tableData.add(data);
            }

        } catch (Exception e) {
            // TODO: handle exception
        } finally {
            // 关闭连接
            DBUtil.closeConnection(connection);
            DBUtil.closePreparedStatement(prepareStatement);
            DBUtil.closeResultSet(resultSet);
        }

    }

    // 定义一个方法 用于查询所有的数据

    //	定义一个方法完成组件的添加
    public void addComponent() {
        // 设置当前窗体的默认的面板的布局
        contentPane.setLayout(new BorderLayout());

        // 菜单面板
        menuJPanel.add(addButton);
        menuJPanel.add(updateButton);
        menuJPanel.add(deleteButton);
        menuJPanel.add(inquireButton);

        // 将菜单按钮面板 添加到 当前窗体中
        contentPane.add(menuJPanel, BorderLayout.NORTH);

        tableJPanel = new JScrollPane(messageJTable);// 将表格作为一个参数传入

        // 将表格面板 添加到当前窗体面板 的 中间
        contentPane.add(tableJPanel, BorderLayout.CENTER);
    }

    // 定义一个方法完成按钮事件的添加

    public void addAction() {
        // 增加按钮
        addButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                //当点击增加按钮的时候 会跳出一个框框
                new AddJFrame(mainJFrame);

            }
        });

        // 修改按钮
        updateButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                new InputIdJFrame(mainJFrame);

            }
        });

        // 删除按钮
        deleteButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                new DeleteJFrame(mainJFrame);
            }
        });

        //查询按钮
        inquireButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                new InquireJFrame(mainJFrame);

            }
        });
    }
}
AddJFrame
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class AddJFrame extends JFrame {
	AddJFrame addJFrame = this;
	MainJFrame mainJFrame;

	// 增加组件
	JLabel nameJLabel = new JLabel("姓名:");
	JLabel codeJLabel = new JLabel("学号:");
	JLabel clazzJLabel = new JLabel("班级:");
	JLabel addressJLabel = new JLabel("籍贯:");

	JTextField nameField = new JTextField();
	JTextField codeField = new JTextField();
	JTextField clazzField = new JTextField();
	JTextField addressField = new JTextField();

	// 按钮
	JButton submit = new JButton("提交");

	// 创建一个面板
	JPanel panel = new JPanel(null);

	// 构造方法完成初始化
	public AddJFrame(MainJFrame mainJFrame) {
		this.mainJFrame = mainJFrame;
		addComponent();
		addAction();
		this.setTitle("增加学生");
		this.setIconImage(ResourceUtil.icon);
		this.setSize(400, 300);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.add(panel);
		this.setVisible(true);
	}

	// 定义一个方法完成 组件的添加
	public void addComponent() {
		int d = 30;
		// 设置组件的尺寸
		nameJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		nameJLabel.setBounds(100, 48, 50, 30);
		nameField.setBounds(150, 50, 100, 25);
		panel.add(nameJLabel);
		panel.add(nameField);

		codeJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		codeJLabel.setBounds(100, 48 + d, 50, 30);
		codeField.setBounds(150, 50 + d, 100, 25);
		panel.add(codeJLabel);
		panel.add(codeField);

		clazzJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		clazzJLabel.setBounds(100, 48 + 2 * d, 50, 30);
		clazzField.setBounds(150, 50 + 2 * d, 100, 25);
		panel.add(clazzJLabel);
		panel.add(clazzField);

		addressJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		addressJLabel.setBounds(100, 48 + 3 * d, 50, 30);
		addressField.setBounds(150, 50 + 3 * d, 100, 25);
		panel.add(addressJLabel);
		panel.add(addressField);

		// 按钮
		submit.setBounds(150, 50 + 5 * d, 60, 25);
		panel.add(submit);

	}

	// 定义一个方法用于为按钮添加事件
	public void addAction() {
		submit.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取焦点
				JButton s = (JButton) e.getSource();
				// 判断是否是提交的按钮
				if (s.getText().equals("提交")) {
					// 获取输入框中的所有的数据
					String name = nameField.getText();
					String code = codeField.getText();
					String clazz = clazzField.getText();
					String address = addressField.getText();

					// 将获取到的数据 添加到 数据库中
					// 1 书写sql语句
					String sql = "insert into stu(name, code, clazz, address) VALUES (?,?,?,?) ";

					// 2 获取连接
					Connection connection = null;
					PreparedStatement prepareStatement = null;
					try {
						connection = DBUtil.getConnection();
						// 3 通过连接对象 获取执行语句的对象 将sql语句传入
						prepareStatement = connection.prepareStatement(sql);
						// 4  设置每个? 是什么
						prepareStatement.setString(1, name);
						prepareStatement.setString(2, code);
						prepareStatement.setString(3, clazz);
						prepareStatement.setString(4, address);

						// 5 执行 返回值 表示 有几行受到影响
						int i = prepareStatement.executeUpdate();

						// 6 判断是否成功插入
						if (i==1) {
							// 更新表的数据 相当于重新查了一次
							// 主界面 销毁
							mainJFrame.dispose();
							// 添加界面销毁
							addJFrame.dispose();
							// 重新创建一个新的主界面
							new MainJFrame();
						}else {
							JOptionPane.showMessageDialog(addJFrame, "插入失败");
						}



					} catch (Exception e11) {
						// TODO: handle exception
					} finally {
						// 关闭连接
						DBUtil.closeConnection(connection);
						DBUtil.closePreparedStatement(prepareStatement);
					}
				}

			}
		});
	}
}
DeleteJFrame
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class DeleteJFrame extends JFrame {
	MainJFrame mainJFrame;
	DeleteJFrame deleteJFrame = this;
	// 创建组件
	JPanel jPanel = new JPanel(null);

	// 标题
	JLabel idJLabel = new JLabel("请输入要删除的学生id");
	JTextField idField = new JTextField();
	JButton submit = new JButton("提交");

	// 构造方法完成初始化
	public DeleteJFrame(MainJFrame mainJFrame) {
		this.mainJFrame = mainJFrame;
		addComponent();
		addAction();
		this.setTitle("删除学生");
		this.setIconImage(ResourceUtil.icon);
		this.setSize(400, 300);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.add(jPanel);
		this.setVisible(true);
	}

	// 定义一个方法添加组件
	public void addComponent() {
		// 设置各个组件
		idJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		idJLabel.setBounds(100, 10, 200, 30);
		idField.setBounds(130, 50, 100, 25);
		submit.setBounds(150, 100, 60, 25);
		// 添加到面板上
		jPanel.add(idJLabel);
		jPanel.add(idField);
		jPanel.add(submit);
	}

	// 定义一个方法 完成事件的添加
	public void addAction() {
		submit.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取焦点
				JButton s = (JButton) e.getSource();
				// 判断是否是提交的按钮
				if (s.getText().equals("提交")) {
					// 获取输入框中的所有的数据
					String id = idField.getText();
					// 将获取到的数据 添加到 数据库中
					// 1 书写sql语句
					String sql = "delete from stu where id = ? ";
					// 2 获取连接
					Connection connection = null;
					PreparedStatement prepareStatement = null;
					try {
						connection = DBUtil.getConnection();
						// 3 通过连接对象 获取执行语句的对象 将sql语句传入
						prepareStatement = connection.prepareStatement(sql);
						// 4 设置每个? 是什么
						prepareStatement.setInt(1, Integer.parseInt(id));

						// 5 执行 返回值 表示 有几行受到影响
						int i = prepareStatement.executeUpdate();

						// 6 判断是否成功插入
						if (i == 1) {
							// 更新表的数据 相当于重新查了一次
							// 主界面 销毁
							mainJFrame.dispose();
							// 添加界面销毁
							deleteJFrame.dispose();
							// 重新创建一个新的主界面
							new MainJFrame();
						} else {
							JOptionPane.showMessageDialog(deleteJFrame, "删除失败");
						}

					} catch (Exception e11) {
						// TODO: handle exception
					} finally {
						// 关闭连接
						DBUtil.closeConnection(connection);
						DBUtil.closePreparedStatement(prepareStatement);
					}
				}

			}
		});
	}
}
InputIdJFrame
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class InputIdJFrame extends JFrame{
	MainJFrame mainJFrame;
	InputIdJFrame inputIdJFrame = this;
	// 创建组件
	JPanel jPanel = new JPanel(null);

	// 标题
	JLabel idJLabel = new JLabel("请输入要修改的学生id");
	JTextField idField = new JTextField();
	JButton submit = new JButton("提交");

	// 构造方法完成初始化
	public InputIdJFrame(MainJFrame mainJFrame) {
		this.mainJFrame = mainJFrame;
		addComponent();
		addAction();
		this.setTitle("修改学生");
		this.setIconImage(ResourceUtil.icon);
		this.setSize(400, 300);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.add(jPanel);
		this.setVisible(true);
	}

	// 定义一个方法添加组件
	public void addComponent() {
		// 设置各个组件
		idJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		idJLabel.setBounds(100, 10, 200, 30);
		idField.setBounds(130, 50, 100, 25);
		submit.setBounds(150, 100, 60, 25);
		// 添加到面板上
		jPanel.add(idJLabel);
		jPanel.add(idField);
		jPanel.add(submit);
	}

	// 定义一个方法 完成事件的添加
	public void addAction() {
		submit.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取焦点
				JButton s = (JButton) e.getSource();
				// 判断是否是提交的按钮
				if (s.getText().equals("提交")) {
					// 获取输入框中的所有的数据
					String id = idField.getText();

					//弹出 修改的框
					new UpdateJFrame(id,mainJFrame);
					inputIdJFrame.dispose();
				}
			}
		});
	}
}
InquireJFrame
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class InquireJFrame extends JFrame{
    MainJFrame mainJFrame;
    InquireJFrame inquireJFrame = this;
    // 创建组件
    JPanel jPanel = new JPanel(null);

    // 标题
    JLabel idJLabel = new JLabel("请输入要查询的学生id");
    JTextField idField = new JTextField();
    JButton submit1 = new JButton("提交");

    // 构造方法完成初始化
    public InquireJFrame(MainJFrame mainJFrame) {
        this.mainJFrame = mainJFrame;
        addComponent();
        addAction();
        this.setTitle("查询学生");
        this.setIconImage(ResourceUtil.icon);
        this.setSize(400, 300);
        this.setLocationRelativeTo(null);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.add(jPanel);
        this.setVisible(true);
    }

    // 定义一个方法添加组件
    public void addComponent() {
        // 设置各个组件
        idJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
        idJLabel.setBounds(100, 10, 200, 30);
        idField.setBounds(130, 50, 100, 25);
        submit1.setBounds(150, 100, 60, 25);
        // 添加到面板上
        jPanel.add(idJLabel);
        jPanel.add(idField);
        jPanel.add(submit1);
    }
    static String id;
    // 定义一个方法 完成事件的添加
    public void addAction() {
        submit1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取焦点
                JButton s = (JButton) e.getSource();

                // 判断是否是提交的按钮
                if (s.getText().equals("提交")) {
                    // 获取输入框中的所有的数据

                    id = idField.getText();

                    // 将获取到的数据 添加到 数据库中
                    // 1 书写sql语句
                    String sql = "select * from stu where id = ? ";
                    // 2 获取连接
                    Connection connection = null;
                    PreparedStatement prepareStatement = null;
                    ResultSet resultSet=null;
                    try {
                        connection = DBUtil.getConnection();
                        // 3 通过连接对象 获取执行语句的对象 将sql语句传入
                        prepareStatement = connection.prepareStatement(sql);
                        // 4 设置每个? 是什么
                        prepareStatement.setInt(1, Integer.parseInt(id));

                        resultSet=prepareStatement.executeQuery();
                        //6结果集中就有我们查询到的结果
                        if(resultSet.next()) {			//当有结果的时候
                            mainJFrame.dispose();
                            // 添加界面销毁
                            inquireJFrame.dispose();
                            // 重新创建一个新的主界面
                            new RegisterMainJFrame(InquireJFrame.id);
                        }
                        else {
                            JOptionPane.showMessageDialog(inquireJFrame, "查询失败");
                        }
                    }
                    catch (Exception e11) {
                        // TODO: handle exception
                    } finally {

                        // 关闭连接

                        DBUtil.closeConnection(connection);

                        DBUtil.closePreparedStatement(prepareStatement);
                    }
                }

            }
        });
    }
}
UpdateJFrame
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class UpdateJFrame extends JFrame {
	UpdateJFrame updateJFrame = this;
	MainJFrame mainJFrame;

	String id;

	// 增加组件
	JLabel nameJLabel = new JLabel("姓名:");
	JLabel codeJLabel = new JLabel("学号:");
	JLabel clazzJLabel = new JLabel("班级:");
	JLabel addressJLabel = new JLabel("籍贯:");

	JTextField nameField = new JTextField();
	JTextField codeField = new JTextField();
	JTextField clazzField = new JTextField();
	JTextField addressField = new JTextField();

	// 按钮
	JButton submit = new JButton("提交");

	// 创建一个面板
	JPanel panel = new JPanel(null);

	// 构造方法完成初始化
	public UpdateJFrame(String id,MainJFrame mainJFrame) {
		this.mainJFrame = mainJFrame;
		this.id = id;
		addComponent();
		addAction();
		this.setTitle("修改学生");
		this.setIconImage(ResourceUtil.icon);
		this.setSize(400, 300);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.add(panel);
		this.setVisible(true);
	}

	// 定义一个方法完成 组件的添加
	public void addComponent() {
		int d = 30;
		// 设置组件的尺寸
		nameJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		nameJLabel.setBounds(100, 48, 50, 30);
		nameField.setBounds(150, 50, 100, 25);
		panel.add(nameJLabel);
		panel.add(nameField);

		codeJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		codeJLabel.setBounds(100, 48 + d, 50, 30);
		codeField.setBounds(150, 50 + d, 100, 25);
		panel.add(codeJLabel);
		panel.add(codeField);

		clazzJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		clazzJLabel.setBounds(100, 48 + 2 * d, 50, 30);
		clazzField.setBounds(150, 50 + 2 * d, 100, 25);
		panel.add(clazzJLabel);
		panel.add(clazzField);

		addressJLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		addressJLabel.setBounds(100, 48 + 3 * d, 50, 30);
		addressField.setBounds(150, 50 + 3 * d, 100, 25);
		panel.add(addressJLabel);
		panel.add(addressField);

		// 按钮
		submit.setBounds(150, 50 + 5 * d, 60, 25);
		panel.add(submit);

	}

	// 定义一个方法用于为按钮添加事件
	public void addAction() {
		submit.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取焦点
				JButton s = (JButton) e.getSource();
				// 判断是否是提交的按钮
				if (s.getText().equals("提交")) {
					// 获取输入框中的所有的数据
					String name = nameField.getText();
					String code = codeField.getText();
					String clazz = clazzField.getText();
					String address = addressField.getText();

					// 将获取到的数据 添加到 数据库中
					// 1 书写sql语句
					String sql = "update  stu set name = ?,code = ?,clazz = ?,address = ? where  id = ? ";

					// 2 获取连接
					Connection connection = null;
					PreparedStatement prepareStatement = null;
					try {
						connection = DBUtil.getConnection();
						// 3 通过连接对象 获取执行语句的对象 将sql语句传入
						prepareStatement = connection.prepareStatement(sql);
						// 4 设置每个? 是什么
						prepareStatement.setString(1, name);
						prepareStatement.setString(2, code);
						prepareStatement.setString(3, clazz);
						prepareStatement.setString(4, address);
						prepareStatement.setInt(5, Integer.parseInt(id));

						// 5 执行 返回值 表示 有几行受到影响
						int i = prepareStatement.executeUpdate();

						// 6 判断是否成功插入
						if (i == 1) {
							// 更新表的数据 相当于重新查了一次
							// 主界面 销毁
							mainJFrame.dispose();
							// 添加界面销毁
							updateJFrame.dispose();
							// 重新创建一个新的主界面
							new MainJFrame();
						} else {
							JOptionPane.showMessageDialog(updateJFrame, "修改失败");
						}

					} catch (Exception e11) {
						// TODO: handle exception
					} finally {
						// 关闭连接
						DBUtil.closeConnection(connection);
						DBUtil.closePreparedStatement(prepareStatement);
					}
				}

			}
		});
	}
}

源码连接

'链接:https://pan.baidu.com/s/1hIuCsj6Nl5XJvpbaQniZKA 
提取码:3598 
'感谢你的支持!谢谢!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尽欢Sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值