Java swing+MySQL实现的学生信息管理系统课程设计

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 这款Java swing实现的学生信息管理系统和jsp版本的功能很相似,简单的实现了班级信息的增删改查,学生信息的增删改查,数据库采用的是mysql,jdk版本不限,是Java学习者学习参考非常好的一个小项目,下面我们来看看如何运行。

这款Java swing实现的学生信息管理系统和jsp版本的功能很相似,简单的实现了班级信息的增删改查,学生信息的增删改查,数据库采用的是mysql,jdk版本不限,是Java学习者学习参考非常好的一个小项目,下面我们来看看如何运行。


将项目导入到eclipse中;

正确导入项目后我们来看下包结构:分为Dao、model、view、util四个顶层包,采用的是mvc的设计模式。

第二部需要导入数据库,我们用的是navicat数据库管理软件,非常好用,建议大家也使用这个。

首先先新建一个名为db_student_swing的数据库,然后双击新建的数据库打开。

导入项目根目录下的sql文件,导入后刷新下可以看到数据表。

配置项目中数据库连接的用户名密码。

运行登录界面的程序,即LogOnFrm类。

下面我们来看看运行截图:

下面是登陆界面,登录密码默认是admin,admin,即用户名密码都是admin。

af7d8ad6aab8edab6b3fd000a09e4ed.png

登陆进去后的主界面:

e55d0d7b402f2c8180510017d15ff56.png


先看看班级信息的管理:

班级信息添加:


454a0294180f322ba008a7ceab310cd.png

班级信息列表,在这里可以选中某一行进行修改:

5f74475b5b4c5dcc745ad3db91e3aa7.png

下面我们来看看学生信息的管理:

添加学生信息:

bedb4aa74355ebae017f63b369d5f27.png


学生信息列表:


ce4f94b19d6b0841b01dcd92d62dbe6.png

选中一个学生信息后可以修改

968ed8d95484f30245bb44c77033411.png


删除一条记录:

0f316cfaadd7d55e775be07234442ba.png


以下相关源码可以自行忽略


package com.artisan.view;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MainFrm extends JFrame {
  private JPanel contentPane;
  private JDesktopPane table =null;
  /**
  * Create the frame.
  */
  public MainFrm() {
  setTitle("学生信息管理系统主界面");
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setBounds(100, 100, 450, 300);
  JMenuBar menuBar = new JMenuBar();
  setJMenuBar(menuBar);
  JMenu mnNewMenu = new JMenu("\u57FA\u672C\u6570\u636E\u7EF4\u62A4");
  mnNewMenu.setIcon(new ImageIcon(MainFrm.class.getResource("/images/base.png")));
  menuBar.add(mnNewMenu);
  JMenu mnNewMenu_1 = new JMenu("班级信息管理");
  mnNewMenu_1.setIcon(new ImageIcon(MainFrm.class.getResource("/images/bookTypeManager.png")));
  mnNewMenu.add(mnNewMenu_1);
  JMenuItem menuItem = new JMenuItem("班级信息添加");
  menuItem.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    SchoolClassAddInterFrm bookTypeAddInterFrm=new SchoolClassAddInterFrm();
    bookTypeAddInterFrm.setVisible(true);
    table.add(bookTypeAddInterFrm);
    }
  });
  menuItem.setIcon(new ImageIcon(MainFrm.class.getResource("/images/add.png")));
  mnNewMenu_1.add(menuItem);
  JMenuItem menuItem_1 = new JMenuItem("班级信息维护");
  menuItem_1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    SchoolClassManageInterFrm bookTypeManageInterFrm=new SchoolClassManageInterFrm();
    bookTypeManageInterFrm.setVisible(true);
    table.add(bookTypeManageInterFrm);
    }
  });
  menuItem_1.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
  mnNewMenu_1.add(menuItem_1);
  JMenu mnNewMenu_2 = new JMenu("学生信息管理");
  mnNewMenu_2.setIcon(new ImageIcon(MainFrm.class.getResource("/images/bookManager.png")));
  mnNewMenu.add(mnNewMenu_2);
  JMenuItem menuItem_2 = new JMenuItem("学生信息添加");
  menuItem_2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    StudentAddInterFrm bookAddInterFrm=new StudentAddInterFrm();
    bookAddInterFrm.setVisible(true);
    table.add(bookAddInterFrm);
    }
  });
  menuItem_2.setIcon(new ImageIcon(MainFrm.class.getResource("/images/add.png")));
  mnNewMenu_2.add(menuItem_2);
  JMenuItem menuItem_3 = new JMenuItem("学生信息维护");
  menuItem_3.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    StudentManageInterFrm bookManageInterFrm=new StudentManageInterFrm();
    bookManageInterFrm.setVisible(true);
    table.add(bookManageInterFrm);
    }
  });
  menuItem_3.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
  mnNewMenu_2.add(menuItem_3);
  JMenuItem menuItem_4 = new JMenuItem("\u5B89\u5168\u9000\u51FA");
  menuItem_4.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    int result=JOptionPane.showConfirmDialog(null, "是否退出系统");
    if(result==0){
      dispose();
    }
    }
  });
  menuItem_4.setIcon(new ImageIcon(MainFrm.class.getResource("/images/exit.png")));
  mnNewMenu.add(menuItem_4);
  JMenu menu = new JMenu("关于系统");
  menu.setIcon(new ImageIcon(MainFrm.class.getResource("/images/about.png")));
  menuBar.add(menu);
  JMenuItem mntmjava = new JMenuItem("关于");
  mntmjava.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
    ArtisanInterFrm java1234InterFrm=new ArtisanInterFrm();
    java1234InterFrm.setVisible(true);
    table.add(java1234InterFrm);
    }
  });
  mntmjava.setIcon(new ImageIcon(MainFrm.class.getResource("/images/about.png")));
  menu.add(mntmjava);
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  setContentPane(contentPane);
  contentPane.setLayout(new BorderLayout(0, 0));
  table = new JDesktopPane();
  contentPane.add(table, BorderLayout.CENTER);
  // 设置JFrame最大化
  this.setExtendedState(JFrame.MAXIMIZED_BOTH);
  }
}


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
44 1
|
1月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
65 0
|
24天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
1月前
|
关系型数据库 MySQL Java
java协程操作mysql数据库
本文介绍了如何在Java项目中使用虚拟线程和协程操作MySQL数据库,并通过代码示例展示了如何利用CompletableFuture实现非阻塞数据库连接和操作。
28 2
java协程操作mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
基于Java的学生成绩管理系统/学生信息管理系统
基于Java的学生成绩管理系统/学生信息管理系统
43 2
|
2月前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
2月前
|
自然语言处理 算法 Java
Java如何判断两句话的相似度类型MySQL的match
【9月更文挑战第1天】Java如何判断两句话的相似度类型MySQL的match
26 2
|
3月前
|
安全 Java 关系型数据库
Java连接Mysql SSL初始化失败
Java连接Mysql SSL初始化失败
|
10天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
7天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
27 9