一、系统介绍
1.开发环境
开发工具:Eclipse2021
JDK版本:jdk1.8
Mysql版本:8.0.13
2.技术选型
Java+Swing+Mysql
3.系统功能
1.注册
2.登录
3.查询学生信息
4.增加学生信息
5.修改学生信息
6.删除学生信息
4.数据库
/* Navicat Premium Data Transfer Source Server : MYSQL Source Server Type : MySQL Source Server Version : 80013 Source Host : localhost:3306 Source Schema : swing_student_message Target Server Type : MySQL Target Server Version : 80013 File Encoding : 65001 Date: 25/11/2021 13:46:18 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_student -- ---------------------------- DROP TABLE IF EXISTS `t_student`; CREATE TABLE `t_student` ( `sid` int(11) NOT NULL AUTO_INCREMENT, `sno` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `sname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `sgender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `sage` int(11) NULL DEFAULT NULL, `status` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `grade` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`sid`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of t_student -- ---------------------------- INSERT INTO `t_student` VALUES (1, '100001', '李白', '0', 18, '0', '北京', '大一'); INSERT INTO `t_student` VALUES (2, '100002', '王五', '0', 20, '0', '武汉', '大一'); INSERT INTO `t_student` VALUES (3, '100003', '李四', '0', 18, '0', '武汉', '大三'); INSERT INTO `t_student` VALUES (11, '100004', '赵六', '0', 22, '1', '长沙', '大一'); -- ---------------------------- -- Table structure for t_teacher -- ---------------------------- DROP TABLE IF EXISTS `t_teacher`; CREATE TABLE `t_teacher` ( `tid` int(11) NOT NULL AUTO_INCREMENT, `account` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `pass` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `workage` int(11) NULL DEFAULT NULL, `retire` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_slovenian_ci NULL DEFAULT NULL, `loginstatus` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_slovenian_ci NULL DEFAULT '0' COMMENT '0:未登录,1:已登录', PRIMARY KEY (`tid`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_slovenian_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of t_teacher -- ---------------------------- INSERT INTO `t_teacher` VALUES (35, '200001', 'e10adc3949ba59abbe56e057f20f883e', '张三', '1', 24, '1', '0'); SET FOREIGN_KEY_CHECKS = 1;
二、系统展示
1.注册系统
2.登录系统
3.系统主页面
4.添加学生信息
5.修改学生信息
6.查询学生信息
三、部分代码
LoginFrame.java
package com.zhongbei.eams.ui; import com.zhongbei.eams.factory.EmasFactory; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import com.zhongbei.eams.ui.MainFrame; import java.sql.SQLException; public class LoginFrame extends JFrame { private JTextField tfUsername; // 定义一个用户名输入框 private JPasswordField pfPassword; // 定义一个密码框 private static boolean isLogin; // 判断是否登录 private JCheckBox ckbRemember; // 是否记住密码 private JButton btLogin; // 定义 登录按钮 private JButton btRegister; // 定义 关闭按钮 public LoginFrame() { this.getContentPane().setLayout(null); // 绝对布局 JLabel jlUser = new JLabel("登陆账号");// 定义登录账号标签 jlUser.setBounds(41, 72, 82, 15);// 设置位置 this.add(jlUser);// 添加到当前界面 tfUsername = new JTextField(); // 定义用户名输入框 tfUsername.setBounds(118, 64, 207, 30);// 设置位置 this.add(tfUsername);// 添加到当前界面 JLabel jlPassword = new JLabel("登陆密码");// 定义登录密码标签 jlPassword.setBounds(41, 116, 82, 15);// 设置位置 this.add(jlPassword);// 添加到当前界面 pfPassword = new JPasswordField();// 定义密码输入框 pfPassword.setBounds(118, 108, 207, 30);// 设置位置 this.add(pfPassword);// 添加到当前界面 btLogin = new JButton("登 录");// 定义登录按钮 btLogin.setBounds(63, 206, 93, 30);// 设置位置 btLogin.addActionListener(new ActionListener() { // 登录按钮的监听事件 @Override public void actionPerformed(ActionEvent e) { try { btLoginActionPerformed(); } catch (Exception ex) { ex.printStackTrace(); } } }); this.add(btLogin);// 添加到当前界面 btRegister = new JButton("注 册");// 定义注册按钮 btRegister.setBounds(221, 206, 93, 30);// 设置位置 btRegister.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 打开注册界面 new RegisterFrame(); dispose();// 关闭界面 } }); this.add(btRegister);// 添加到当前界面 setTitle("用户登录界面"); setSize(400, 300); // 设置界面大小 setResizable(false); // 设置界面大小不可改变 setLocationRelativeTo(null); // 设置登录界面居中 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 设置默认关闭操作 this.setVisible(true); } public void btLoginActionPerformed() throws Exception {// 登录方法 // 获取用户名和密码 String username = tfUsername.getText().trim(); String password = new String(pfPassword.getPassword()).trim(); System.out.println(username + "\t" + password); if ("".equals(username) || null == username || "".equals(password) || null == password) { JOptionPane.showMessageDialog(this, "账号和密码均不可以为空"); return; } // if(){ // JOptionPane.showMessageDialog(this,"密码不可以为空"); // return; // } // 登录前判断此刻教师要登录的账户是否存在,如果不存在就没有判断赋号和密码是否止确的必要 boolean flag = EmasFactory.getTeacherServiceInstance().queryTeacherByAccount(username); if (flag) { boolean loginStatus = EmasFactory.getTeacherServiceInstance().queryLoginStatusForTeacher(username); if (loginStatus) { // flag == ture 的话表示教师此刻提交的用户名存在,按下来开始登录 boolean temp = EmasFactory.getTeacherServiceInstance().teacherLoginSystem(username, password); if (temp) { EmasFactory.getTeacherServiceInstance().setTeacherLoginStatus(username, "1"); // temp == ture 的话表示用户名和密码正确,可以进入系统 JOptionPane.showMessageDialog(this, "账号密码正确,即将进入系统!");// 提示 // 需要进入系统 this.dispose(); new MainFrame(username); } else { // temp == ture 的话表示用户名和密码错误,需要重新登录 JOptionPane.showMessageDialog(this, "账号密码错误,请重新登录!");// 提示 } } else { JOptionPane.showMessageDialog(this, "登录的账号已经处于登陆状态,不能继续登录!"); } } else { // flag == false的话表示教师测试提交的用户名不存在(没注册,需要他重新输入) JOptionPane.showMessageDialog(this, "您输入的用户名不存在,请重新输入或注册!");// 提示 } } public static void main(String[] args) { new LoginFrame(); } }