基于Java+MySQL+Swing的学生管理系统

news2024/11/14 12:34:56

1.系统简介和开发背景

        该同学工作积极主动、高效,学习认真,待人诚恳,能够做到服从指挥、认真听取老同志的指导,不怕苦、不怕累,表现有较强的求知欲,积极观察、体验、思考,并能够灵活运用自己的知识解决工作中遇到的实际问题。   

本项目使用:jdk1.8、java、mysql、eclipse/idea

2.功能分析

学生管理模块:

(1)增删改查学生信息,当学生还有学习的学员时,不能删除学生信息;

(2)按学生查询选择课程信息,支持名称模糊查询;

学员管理模块:

(1)增删改查学员信息;

(2)按学员名查询学员信息,支持学员名模糊查询和分页显示;

3.功能模块图及说明

        管理员新增学生信息时填写对应的信息,如姓名、课程号等。后台代码将在页面创建的信息提交到控制层进行数据验证,如果信息填写符合规则且数据唯一,则该数据将存储到本地数据库中,否则添加失败。管理员进行登录时首先点击跳转到管理员登录界面按钮,输入相应的信息点击登录。登录界面流程图如图4-1所示,添加学生功能流程图如图4-2所示。

 

4-1 登录界面流程图

                                               

4-2 添加学生功能流程图

        管理员修改学生职位信息时可以从快速搜索区,输入学生名称进行查询。按要求填写信息后保存,第一条数据为新添加的数据;管理员修改部门信息时,依次填写好对应的信息,后台代码将信息提交到控制层进行数据验证,验证通过则修改成功,数据存储到本地数据库里,否则失败。职位修改功能流程图如图4-3所示,添加部门功能流程图如图4-4所示。

   4-3 学生信息修改流程图

4-4 添加学生功能流程图

学生信息管理系统的主要模块包括增加、删除、修改和查询等操作,以下是这些操作的简单描述:

增加模块:该模块允许管理员将新的学生信息添加到系统中。这通常涉及到填写一个包含各种字段(例如姓名、性别、出生日期、学号、班级等)的表单。系统将检查输入的数据是否有效,例如,学号是否唯一,然后将其添加到数据库中。

删除模块:在此模块中,管理员可以选择并删除系统中的学生信息。例如,当一个学生转学或退学时,管理员可能需要从系统中删除他们的记录。

修改模块:此模块允许管理员更新系统中已有的学生信息。例如,如果学生的家庭地址发生变化,管理员可以通过此模块更新学生的家庭地址信息。在修改数据时,管理员需要确保数据的完整性和准确性。

查询模块:此模块允许管理员和学生查询系统中的学生信息。管理员可以查看学生的全部信息,而学生通常只能查看与他们自己相关的信息,例如他们的成绩、等。

4.部分代码展示

4.1数据库表设计

CREATE TABLE `admin` (
  `Aid` int(11) NOT NULL,
  `Aname` varchar(30) NOT NULL,
  `Apwd` varchar(10) NOT NULL,
  PRIMARY KEY (`Aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = CREATE TABLE `course` (
  `Cnum` int(11) NOT NULL AUTO_INCREMENT,
  `Cno` int(11) NOT NULL,
  `Cname` varchar(20) NOT NULL,
  `Ctime` int(11) NOT NULL,
  `Ccredit` int(11) NOT NULL,
  PRIMARY KEY (`Cnum`,`Cno`),
  KEY `Cname` (`Cname`),
  KEY `Cno` (`Cno`)
CREATE TABLE `score` (
  `Sno` int(11) NOT NULL,
  `Sname` varchar(20) NOT NULL,
  `Cno` int(11) NOT NULL,
  `Cname` varchar(20) DEFAULT NULL,
  `Sscore` decimal(10,0) DEFAULT '0',
  `Rescore` decimal(10,0) DEFAULT '0',
  PRIMARY KEY (`Sno`,`Cno`),
  KEY `Cname` (`Cname`),
  KEY `Cno` (`Cno`),
  KEY `Sname` (`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for user_train_re   //学生,用户联系表
-- ----------------------------
CREATE TABLE `student` (
  `Sno` int(11) NOT NULL,
  `Sname` varchar(30) NOT NULL,
  `Sgender` char(2) NOT NULL,
  `Sage` int(11) NOT NULL,
  `Sbirthday` datetime DEFAULT '1999-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  `Sclass` varchar(10) NOT NULL,
  `Smajor` varchar(20) NOT NULL,
  `Sdept` varchar(20) NOT NULL,
  `Spwd` varchar(10) NOT NULL DEFAULT '123',
  PRIMARY KEY (`Sno`),
  KEY `Sname` (`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.2后台管理界面设计

登录

package com.system.view;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

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;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

import com.system.dao.StudentDao;
import com.system.dao.UserDao;

public class Login extends JFrame {

	private JPanel contentPane;
	private JTextField usernameField;
	private JPasswordField passwordField;
	private JComboBox comboBox;

	/**
	 * Launch the application. 
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Login frame = new Login();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Login() {
		setTitle("学生信息管理系统");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 689, 428);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JPanel panel = new JPanel();
		panel.setBounds(0, 0, 673, 389);
		contentPane.add(panel);
		panel.setLayout(null);

		JLabel lblNewLabel = new JLabel("学生信息管理系统");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		lblNewLabel.setBounds(114, 36, 393, 55);
		panel.add(lblNewLabel);

		JLabel lblNewLabel_1 = new JLabel("用户名:");
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel_1.setBounds(106, 112, 145, 31);
		panel.add(lblNewLabel_1);

		JLabel lblNewLabel_1_1 = new JLabel("密码:");
		lblNewLabel_1_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_1.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel_1_1.setBounds(106, 173, 145, 31);
		panel.add(lblNewLabel_1_1);

		JLabel lblNewLabel_1_2 = new JLabel("身份:");
		lblNewLabel_1_2.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_2.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel_1_2.setBounds(106, 242, 145, 31);
		panel.add(lblNewLabel_1_2);

		usernameField = new JTextField();
		usernameField.setBounds(227, 112, 249, 37);
		panel.add(usernameField);
		usernameField.setColumns(10);

		passwordField = new JPasswordField();
		passwordField.setBounds(227, 170, 249, 37);
		panel.add(passwordField);
		
		String[] a = new String[] { "管理员", "学生" };
		comboBox = new JComboBox(a);
		comboBox.setBounds(227, 237, 249, 42);
		panel.add(comboBox);

		JButton btnNewButton = new JButton("登录");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// 获取文本框数据
				String username = usernameField.getText();
				String password = passwordField.getText();
				String type = (String) comboBox.getSelectedItem();

				// 判断是否为空
				if (username.equals("") || password.equals("")) {
					JOptionPane.showMessageDialog(null, "用户名或密码不能为空!");
				} else {
					if ("管理员".equals(type)) {
						// 管理员登录
						try {
							UserDao log = new UserDao();
							boolean istrue = log.LoginCheck(username, password);
							if (istrue) {
								JOptionPane.showMessageDialog(null, "登录成功!");
								String a = "admin";
								setVisible(false);
								new Bg(a).setVisible(true);
							} else {
								JOptionPane.showMessageDialog(null, "用户名或密码错误!");
							}
						} catch (SQLException e1) {
							e1.printStackTrace();
						}
					} else {
						// 学生登录
						try {
							StudentDao log = new StudentDao();
							boolean istrue = log.LoginCheck(username, password);
							if (istrue) {
								JOptionPane.showMessageDialog(null, "登录成功!");
								String a = "学生"; // 不可修改,控制权限!
								setVisible(false);
								new Bg(a).setVisible(true);
							} else {
								JOptionPane.showMessageDialog(null, "用户名或密码错误!");
							}
						} catch (SQLException e1) {
							e1.printStackTrace();
						}
					}
				}
			}
		});
		btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton.setBounds(132, 308, 108, 37);
		panel.add(btnNewButton);

		JButton btnNewButton_1 = new JButton("重置");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				usernameField.setText("");
				passwordField.setText("");
			}
		});
		btnNewButton_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton_1.setBounds(399, 308, 108, 37);
		panel.add(btnNewButton_1);
	}
}

查询操作

package com.system.view;

import java.awt.Color;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

import com.system.dao.UserDao;
import com.system.entity.Student;

public class StudentSelect extends JFrame {

	private JPanel contentPane;
	private JTextField keyField;
	private JTable table;
	private JScrollPane scrollPane;

	/**
	 * Launch the application.
	 */
	// public static void main(String[] args) {
	// EventQueue.invokeLater(new Runnable() {
	// public void run() {
	// try {
	// StudentSelect frame = new StudentSelect();
	// frame.setVisible(true);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// }
	// });
	// }

	/**
	 * Create the frame.
	 */
	public StudentSelect(String flag) {
		setTitle("学生信息管理系统");
		setBounds(100, 100, 845, 558);
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JPanel panel = new JPanel();
		panel.setBackground(SystemColor.activeCaption);
		panel.setBounds(0, 0, 848, 51);
		contentPane.add(panel);
		panel.setLayout(null);

		JLabel lblNewLabel = new JLabel("学生基本信息");
		lblNewLabel.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setBounds(325, 10, 222, 31);
		panel.add(lblNewLabel);

		JPanel panel_1 = new JPanel();
		panel_1.setBackground(Color.WHITE);
		panel_1.setBounds(0, 49, 829, 51);
		contentPane.add(panel_1);
		panel_1.setLayout(null);

		JLabel lblNewLabel_1 = new JLabel("学号:");
		lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_1.setBounds(225, 10, 54, 31);
		panel_1.add(lblNewLabel_1);

		// 表头
		final Vector vector = new Vector();
		vector.add("学号");
		vector.add("姓名");
		vector.add("性别");
		vector.add("年龄");
		vector.add("班级");
		vector.add("专业");
		vector.add("系别");

		// 表里面的数据
		Vector tData = new Vector();

		keyField = new JTextField();
		keyField.setBounds(273, 10, 190, 31);
		panel_1.add(keyField);
		keyField.setColumns(10);

		JButton btnNewButton = new JButton("查询");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// 根据学号查询学生
				String key = keyField.getText();
				if (key.equals("")) {
					JOptionPane.showMessageDialog(null, "学号不能为空!");
				} else {
					try {
						UserDao user = new UserDao();
						List<Student> list = user.Select(key, null);
						tData.clear();
						for (int i = 0; i < list.size(); i++) {
							Vector v = new Vector();
							v.add(list.get(i).getSno());
							v.add(list.get(i).getName());
							v.add(list.get(i).getGender());
							v.add(list.get(i).getAge());
							v.add(list.get(i).getClas());
							v.add(list.get(i).getMajor());
							v.add(list.get(i).getDept());
							tData.add(v);
						}
						table = new JTable(tData, vector);
						scrollPane.setViewportView(table);
						// table = new JTable(tData, vector);
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
		btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton.setBounds(483, 10, 67, 31);
		panel_1.add(btnNewButton);

		scrollPane = new JScrollPane();
		scrollPane.setBounds(0, 98, 829, 421);
		contentPane.add(scrollPane);

		try {
			UserDao user = new UserDao();
			List<Student> list = user.res();
			tData.clear();
			for (int i = 0; i < list.size(); i++) {
				Vector v = new Vector();
				v.add(list.get(i).getSno());
				v.add(list.get(i).getName());
				v.add(list.get(i).getGender());
				v.add(list.get(i).getAge());
				v.add(list.get(i).getClas());
				v.add(list.get(i).getMajor());
				v.add(list.get(i).getDept());
				tData.add(v);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		table = new JTable(tData, vector);
		scrollPane.setViewportView(table);
	}
}

添加操作

package com.system.view;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

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.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

import com.system.dao.UserDao;

public class StudentAdd extends JFrame {

	private JPanel contentPane;
	private JTextField snoField;
	private JTextField snameField;
	private JTextField sageField;
	private JTextField sclassField;
	private JTextField smajorField;
	private JTextField sdeptField;
	private JComboBox comboBox;

	/**
	 * Launch the application.
	 */
	// public static void main(String[] args) {
	// EventQueue.invokeLater(new Runnable() {
	// public void run() {
	// try {
	// StudentAdd frame = new StudentAdd();
	// frame.setVisible(true);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// }
	// });
	// }

	/**
	 * Create the frame.
	 */
	public StudentAdd(String admin) {
		setBounds(100, 100, 723, 506);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JPanel panel = new JPanel();
		panel.setBackground(Color.WHITE);
		panel.setBounds(0, 0, 707, 467);
		contentPane.add(panel);
		panel.setLayout(null);

		JLabel lblNewLabel = new JLabel("添加学生");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel.setBounds(237, 28, 172, 36);
		panel.add(lblNewLabel);

		JLabel lblNewLabel_1 = new JLabel("学号:");
		lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1.setBounds(201, 81, 53, 30);
		panel.add(lblNewLabel_1);

		snoField = new JTextField();
		snoField.setBounds(267, 80, 194, 36);
		panel.add(snoField);
		snoField.setColumns(10);

		JLabel lblNewLabel_1_1 = new JLabel("姓名:");
		lblNewLabel_1_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_1.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1_1.setBounds(201, 129, 53, 30);
		panel.add(lblNewLabel_1_1);

		JLabel lblNewLabel_1_2 = new JLabel("年龄:");
		lblNewLabel_1_2.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_2.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1_2.setBounds(201, 178, 53, 30);
		panel.add(lblNewLabel_1_2);

		JLabel lblNewLabel_1_3 = new JLabel("班级:");
		lblNewLabel_1_3.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_3.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1_3.setBounds(201, 231, 53, 30);
		panel.add(lblNewLabel_1_3);

		JLabel lblNewLabel_1_4 = new JLabel("专业:");
		lblNewLabel_1_4.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_4.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1_4.setBounds(201, 277, 53, 30);
		panel.add(lblNewLabel_1_4);

		JLabel lblNewLabel_1_5 = new JLabel("系别:");
		lblNewLabel_1_5.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_5.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1_5.setBounds(201, 330, 53, 30);
		panel.add(lblNewLabel_1_5);

		JLabel lblNewLabel_1_6 = new JLabel("性别:");
		lblNewLabel_1_6.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1_6.setFont(new Font("微软雅黑", Font.BOLD, 15));
		lblNewLabel_1_6.setBounds(201, 381, 53, 30);
		panel.add(lblNewLabel_1_6);

		snameField = new JTextField();
		snameField.setColumns(10);
		snameField.setBounds(267, 126, 194, 36);
		panel.add(snameField);

		sageField = new JTextField();
		sageField.setColumns(10);
		sageField.setBounds(267, 177, 194, 36);
		panel.add(sageField);

		sclassField = new JTextField();
		sclassField.setColumns(10);
		sclassField.setBounds(267, 230, 194, 36);
		panel.add(sclassField);

		smajorField = new JTextField();
		smajorField.setColumns(10);
		smajorField.setBounds(267, 276, 194, 36);
		panel.add(smajorField);

		sdeptField = new JTextField();
		sdeptField.setColumns(10);
		sdeptField.setBounds(267, 329, 194, 36);
		panel.add(sdeptField);

		JButton btnNewButton = new JButton("添加");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String sno = snoField.getText();
				String sname = snameField.getText();
				String sage = sageField.getText();
				String sclass = sclassField.getText();
				String smajor = smajorField.getText();
				String sdept = sdeptField.getText();
				String sex = (String) comboBox.getSelectedItem();
				
				if (sno.equals("") || sname.equals("") || sage.equals("") || sclass.equals("") || smajor.equals("")
						|| sdept.equals("") || sex.equals("")) {
					JOptionPane.showMessageDialog(null, "信息不完整,请填写完整!");
				} else {
					UserDao userDao = new UserDao();
					try {
						boolean istrue = userDao.insert(sno, sname, sex, sage, sclass, smajor, sdept);
							if (istrue) {
								JOptionPane.showMessageDialog(null, "学生信息录入成功!");
							} else{
								JOptionPane.showMessageDialog(null, "学生录入失败,此学号已存在!");
							}
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					
				}
				
			}

		});
		btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton.setBounds(201, 427, 93, 30);
		panel.add(btnNewButton);

		JButton btnNewButton_1 = new JButton("重置");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				snoField.setText("");
				snameField.setText("");
				sageField.setText("");
				sclassField.setText("");
				smajorField.setText("");
				sdeptField.setText("");

			}
		});
		btnNewButton_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton_1.setBounds(390, 427, 93, 30);
		panel.add(btnNewButton_1);

		String[] a = new String[] { "男", "女" };
		comboBox = new JComboBox(a);
		comboBox.setBounds(267, 381, 194, 27);
		panel.add(comboBox);



	}
}

修改操作

package com.system.view;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import com.system.dao.UserDao;
import com.system.entity.Student;

public class StudentUpdate extends Bg {

	private JPanel contentPane;
	private JTextField keyField;
	private JTextField snoField;
	private JTextField snameField;
	private JTextField sageField;
	private JTextField sclassField;
	private JTextField smajorField;
	private JTextField sdeptField;
	private JComboBox comboBox;

	/**
	 * Launch the application.
	 */
	// public static void main(String[] args) {
	// EventQueue.invokeLater(new Runnable() {
	// public void run() {
	// try {
	// StudentUpdate frame = new StudentUpdate();
	// frame.setVisible(true);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// }
	// });
	// }

	/**
	 * Create the frame.
	 */
	public StudentUpdate(String a) {
		// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// setBounds(100, 100, 450, 300);
		// contentPane = new JPanel();
		// contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		// contentPane.setLayout(new BorderLayout(0, 0));
		// setContentPane(contentPane);
		super(a);

		JPanel panel = new JPanel();
		panel.setBackground(Color.WHITE);
		panel.setBounds(166, 54, 751, 493);
		getContentPane().add(panel);
		panel.setLayout(null);

		JLabel lblNewLabel = new JLabel("修改学生信息");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel.setBounds(270, 32, 214, 32);
		panel.add(lblNewLabel);

		JLabel lblNewLabel_1 = new JLabel("输入学号:");
		lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_1.setBounds(140, 81, 81, 19);
		panel.add(lblNewLabel_1);

		keyField = new JTextField();
		keyField.setBounds(214, 81, 182, 21);
		panel.add(keyField);
		keyField.setColumns(10);

		JButton btnNewButton = new JButton("查询");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String key = keyField.getText();
				if (key.equals("")) {
					JOptionPane.showMessageDialog(null, "学号不能为空!");
				} else {

					UserDao user = new UserDao();
					Student stu = new Student();
					try {
						stu = user.select(key);
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					if (stu != null) {
						snoField.setText(String.valueOf(stu.getSno()));
						snameField.setText(stu.getName());
						sageField.setText(String.valueOf(stu.getAge()));
						sclassField.setText(stu.getClas());
						smajorField.setText(stu.getMajor());
						sdeptField.setText(stu.getDept());
						comboBox.setSelectedItem(stu.getGender());
					} else {
						JOptionPane.showMessageDialog(null, "查无此生!");
					}
						

				}
			}
		});
		btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton.setBounds(429, 77, 75, 26);
		panel.add(btnNewButton);

		JLabel lblNewLabel_2 = new JLabel("查询学生是否存在!");
		lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_2.setForeground(Color.RED);
		lblNewLabel_2.setFont(new Font("微软雅黑", Font.BOLD, 13));
		lblNewLabel_2.setBounds(224, 110, 172, 19);
		panel.add(lblNewLabel_2);

		JLabel lblNewLabel_3 = new JLabel("学生基本信息:");
		lblNewLabel_3.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel_3.setBounds(140, 151, 182, 19);
		panel.add(lblNewLabel_3);

		JLabel lblNewLabel_4 = new JLabel("学号:");
		lblNewLabel_4.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4.setBounds(140, 193, 53, 21);
		panel.add(lblNewLabel_4);

		snoField = new JTextField();
		snoField.setBounds(190, 188, 227, 32);
		panel.add(snoField);
		snoField.setColumns(10);

		JLabel lblNewLabel_4_1 = new JLabel("姓名:");
		lblNewLabel_4_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1.setBounds(140, 239, 53, 21);
		panel.add(lblNewLabel_4_1);

		snameField = new JTextField();
		snameField.setColumns(10);
		snameField.setBounds(190, 235, 227, 32);
		panel.add(snameField);

		JLabel lblNewLabel_4_1_1 = new JLabel("年龄:");
		lblNewLabel_4_1_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1_1.setBounds(140, 284, 53, 21);
		panel.add(lblNewLabel_4_1_1);

		sageField = new JTextField();
		sageField.setColumns(10);
		sageField.setBounds(190, 277, 227, 32);
		panel.add(sageField);

		sclassField = new JTextField();
		sclassField.setColumns(10);
		sclassField.setBounds(190, 319, 227, 32);
		panel.add(sclassField);

		JLabel lblNewLabel_4_1_1_1 = new JLabel("班级:");
		lblNewLabel_4_1_1_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1_1_1.setBounds(140, 327, 53, 21);
		panel.add(lblNewLabel_4_1_1_1);

		JLabel lblNewLabel_4_1_1_1_1 = new JLabel("班级:");
		lblNewLabel_4_1_1_1_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1_1_1_1.setBounds(140, 327, 53, 21);
		panel.add(lblNewLabel_4_1_1_1_1);

		JLabel lblNewLabel_4_1_1_1_2 = new JLabel("专业:");
		lblNewLabel_4_1_1_1_2.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1_1_1_2.setBounds(140, 373, 53, 21);
		panel.add(lblNewLabel_4_1_1_1_2);

		smajorField = new JTextField();
		smajorField.setColumns(10);
		smajorField.setBounds(190, 369, 227, 32);
		panel.add(smajorField);

		JLabel lblNewLabel_4_1_1_1_2_1 = new JLabel("系别:");
		lblNewLabel_4_1_1_1_2_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1_1_1_2_1.setBounds(140, 416, 53, 21);
		panel.add(lblNewLabel_4_1_1_1_2_1);

		sdeptField = new JTextField();
		sdeptField.setColumns(10);
		sdeptField.setBounds(190, 411, 227, 32);
		panel.add(sdeptField);

		JLabel lblNewLabel_4_1_1_1_2_1_1 = new JLabel("性别:");
		lblNewLabel_4_1_1_1_2_1_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		lblNewLabel_4_1_1_1_2_1_1.setBounds(140, 462, 53, 21);
		panel.add(lblNewLabel_4_1_1_1_2_1_1);

		String[] b = new String[] { "男", "女" };
		comboBox = new JComboBox(b);
		comboBox.setBounds(190, 453, 227, 30);
		panel.add(comboBox);

		JButton btnNewButton_1 = new JButton("保存");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				String sno = snoField.getText();
				String sname = snameField.getText();
				String sage = sageField.getText();
				String sclass = sclassField.getText();
				String smajor = smajorField.getText();
				String sdept = sdeptField.getText();
				String sex = (String) comboBox.getSelectedItem();

				UserDao userDao = new UserDao();
				try {
					boolean flag = userDao.update(sno, sname, sex, sage, sclass, smajor, sdept);
					if (flag) {
						JOptionPane.showMessageDialog(null, "修改成功!");
					} else {
						JOptionPane.showMessageDialog(null, "修改失败!");
					}
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		});
		btnNewButton_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton_1.setBounds(474, 453, 93, 30);
		panel.add(btnNewButton_1);
	}

}

删除操作

package com.system.view;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

import com.system.dao.UserDao;

public class StudentDelete extends Bg {

	private JPanel contentPane;
	private JTextField keyField;

	/**
	 * Launch the application.
	 */
	// public static void main(String[] args) {
	// EventQueue.invokeLater(new Runnable() {
	// public void run() {
	// try {
	// StudentDelete frame = new StudentDelete();
	// frame.setVisible(true);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// }
	// });
	// }

	/**
	 * Create the frame.
	 */
	public StudentDelete(String a) {
		// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// setBounds(100, 100, 450, 300);
		// contentPane = new JPanel();
		// contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		// contentPane.setLayout(new BorderLayout(0, 0));
		// setContentPane(contentPane);
		super(a);

		JLabel lblNewLabel = new JLabel("删除学生信息");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setFont(new Font("微软雅黑", Font.BOLD, 18));
		lblNewLabel.setBounds(442, 113, 227, 37);
		getContentPane().add(lblNewLabel);

		JLabel lblNewLabel_1 = new JLabel("输入学号:");
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 16));
		lblNewLabel_1.setBounds(402, 197, 81, 27);
		getContentPane().add(lblNewLabel_1);

		keyField = new JTextField();
		keyField.setBounds(485, 193, 184, 37);
		getContentPane().add(keyField);
		keyField.setColumns(10);

		JButton btnNewButton = new JButton("删除");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String key = keyField.getText();
				if (key.equals("")) {
					JOptionPane.showMessageDialog(null, "学号不能为空!");
				} else {
					UserDao user = new UserDao();
					try {
						if (user.delete(key)) {
							JOptionPane.showMessageDialog(null, "删除学生成功!");
						} else {
							JOptionPane.showMessageDialog(null, "删除学生失败,请检查该学号是否正确!");
						}
					} catch (Exception e1) {

					}

				}
			}
		});
		btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));
		btnNewButton.setBounds(696, 193, 102, 37);
		getContentPane().add(btnNewButton);
	}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web安全技术期末考查-vulhub靶场搭建及漏洞复现

一、实验目的与要求 能根据报告找到难度适中的漏洞&#xff0c;搭建弱点环境&#xff0c;并验证该漏洞&#xff1b; 2.能给出该漏洞的修复建议。 二、实验原理与内容 漏洞原理 漏洞原理通常指的是计算机系统、软件、网络或其他技术系统中存在的安全缺陷&#xff0c;这些缺陷…

rapidssl泛域名https600元一年

泛域名https证书也可以称之为通配符https证书&#xff0c;指的是可以用一张https证书为多个网站(主域名以及主域名下的所有子域名网站)传输数据加密&#xff0c;并且提供身份认证服务的数字证书产品。RapidSSL旗下的泛域名https证书性价比高&#xff0c;申请速度快&#xff0c;…

浅谈JMeter体系结构

JMeter体系结构详解 JMeter是一款功能强大的开源性能测试工具&#xff0c;广泛应用于Web应用、数据库、FTP服务器等多种场景下的负载和压力测试。其灵活的体系结构设计使得测试计划的创建、执行与结果分析变得高效而直观。本文将深入解析JMeter的三维空间体系结构&#xff0c;…

SSE(Server Sent Event) 踩坑留念

整条链路是 客户端A --> 服务端 A —> 服务端 B 我负责服务端 A 此时要注意 Client 中的 processes 的写法 Post(value “/v2/xx”, processes MediaType.TEXT_EVENT_STREAM) 这样写是一直报错的 改成下面的写法才可以 Post(value “/v2/xx”, processes MediaT…

HTTP 协议的基本格式和Fidder的简单使用

HTTP协议诞生于1996&#xff08;开玩笑哈&#xff0c;诞生于1991年&#xff09;&#xff0c;http协议用于网页和手机app和服务器交互的场景。通过HTTP协议&#xff0c;客户端&#xff08;例如网页浏览器或手机应用&#xff09;可以向服务器发送请求&#xff0c;服务器则会响应这…

10个最佳人物素材网站推荐,免费获取第一个PNG文件!

人物素材是设计中应用最广泛的元素之一。无论是网页设计还是移动终端设计&#xff0c;人物素材的插画设计都比文字信息更容易吸引用户的注意力。作为内容呈现&#xff0c;还可以增加设计的艺术属性。为了节省大家寻找人物素材的时间成本&#xff0c;本文立即为大家整理了10个宝…

数据结构的直接插入排序(C语言版)

一.直接插入排序的基本概念 1.直接插入排序的基本思想 将数组分为已排序和未排序两部分。 每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。 重复步骤2,直到整个数组有序。 2.排序的工作原理 假设前 i-1 个元素已经有序,现在要将第…

【Django】开发个人博客系统【1】

使用Django开发个人博客系统&#xff0c;博客系统包括用户&#xff08;博主&#xff09;注册和登录、博主资料信息、图片墙功能、留言板功能、文章列表、文章正文内容和Admin后台系统。 1. 项目架构设计 下一步将上述设置写入Django的配置文件settings.py&#xff0c;当Django…

利用C#中WinForm设计一个小游戏:DoYouLoveMe???

目录 一、WinForm 二、功能实现 三、代码部分 一、WinForm Windows 窗体是用于生成 Windows 桌面应用的 UI 框架。 它提供了一种基于 Visual Studio 中提供的可视化设计器创建桌面应用的高效方法。 利用视觉对象控件的拖放放置等功能&#xff0c;可以轻松生成桌面应用。 使…

适合大学生低成本创业的又一个项目推荐(宿舍小卖部)

​ 大学生的时间是非常充裕的&#xff0c;这也导致了大学生非常的懒惰&#xff0c;每天除了娱乐&#xff08;打游戏&#xff0c;针对大部分人&#xff09;&#xff0c;也没有其它爱好了&#xff0c;就连吃饭都要抽时间来吃&#xff0c;所以这就给同学在宿舍做点小生意带来了机会…

如何在忘记密码的情况下解锁 iPhone? 6 种方法分享

您是否因为没有密码而无法解锁您的 iPhone&#xff1f; 别担心&#xff0c;这种情况比你想象的更常见&#xff01;忘记密码是 iPhone 用户面临的最常见问题之一&#xff0c;而且可能非常令人沮丧 - 但不要绝望。 在这篇文章中&#xff0c;我们将与您分享绕过 iPhone 屏幕密码…

保时捷经销商造反,都怪小米SU7们?

文 | Auto芯球 作者 | 雷慢 造反啦&#xff0c;保时捷的经销售造反啦&#xff0c; 现在时候买合资进口豪车&#xff0c;估计亏得爹妈都不认得了&#xff0c; 放在三年前&#xff0c;打死我也不敢相信豪华车会有今天这样的闹剧&#xff0c; 这两天&#xff0c;保时捷中国的…

Moto和Inter字节序

inter: 低地址按照start_bit位放低字节依次往高字节填充 MotoLsb: 低地址按照start_bit位放高字节&#xff0c;依次往低字节填充MotoMsb&#xff1a;高字节按照start_bit位放低地址&#xff0c;依次往高字节填充

【机器学习】Python中的决策树算法探索

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Python中的决策树算法探索引言1. 决策树基础理论1.1 算法概述1.2 构建过程 2. P…

软件3班20240527

JDK 版本与 Tomcat 的 兼容性

谷歌忙于手动删除自己搜索引擎中奇怪的人工智能答案

该公司确认正在“迅速采取行动”消除人工智能工具的一些奇怪反应。 社交媒体上充斥着谷歌新的人工智能概述产品的例子&#xff0c;这些产品说了一些奇怪的话&#xff0c;从告诉用户在披萨上涂胶水到建议他们吃石头。混乱的推出意味着&#xff0c;随着各种表情包的发布&#xf…

bootstrap实现天平效果

之前提到了&#xff0c;最近&#xff0c;孩子的幼儿园让家长体验“半日助教活动”&#xff0c;每个家长需要讲授15-20分钟的课程。作为一名程序员&#xff0c;实在没有能教的课程&#xff0c;只能做了一个小游戏&#xff0c;带着小朋友们熟悉数字。 在上一章博客中&#xff0c…

解决mysql5.7版本中,子查询order by后,对子查询进行group by分组获取最新记录无效的问题

目录 场景简介原因示例mysql5.7之前的版本mysql5.7之后的版本解决1、使用having2、使用limit3、使用子查询获取目标数据ID 场景简介 子查询order by后&#xff0c;对子查询进行group by分组获取最新记录失败 应用场景&#xff1a;一对多的关系&#xff0c;通常需要取最新、最…

好消息!PMP纸质证书可以领取啦!(22年11月至23年8月)

上周五&#xff0c;中国国际人才交流基金会官方发布了《关于2022年11月和2023年3月、5月、8月PMI认证考试证书领取》的通知&#xff0c;具体内容如下&#xff1a; 之前顺利通过PMP/ACP/PgMP考试的同学抓紧时间&#xff0c;在5月24日—6月10日内进入官网上登记领取证书。 PMP考…

1990-2021 年全球油棕面积和种植年份数据集

简介 该数据集利用 2016 年至 2021 年的哨兵-1 号数据&#xff0c;以 10 米的分辨率提供了油棕种植园的全球综合地图&#xff0c;包括工业用地和小农地块。此外&#xff0c;该数据集还包括根据 Landsat-5、-7 和-8 图像得出的 1990 年至 2021 年 30 米空间分辨率的种植年份估计…