一、项目概要:
       基于Java Swing+Mysql8.0数据库的学生选课管理系统,主要有三个部分:系统管理,数据管理,数据查询。

1)、系统管理主要用于用户信息的相关管理。主要包括密码设置、用户登录、退出三个功能。 

2)、数据管理主要用于信息的增加、删除、更改,主要包括学生管理、课程管理和选课管理三大模块。其中学生管理下有添加了添加学生、删除学生、修改学生三大功能,同样课程和选课也有增加、删除、修改这三大功能。 

3)、数据查询主要用于查询信息管理,主要包括查询学生信息管理、查询课程信息和查询选课信息三大功能

 二、界面展示:

登录界面:

主界面:

学生管理界面:

课程管理界面:

选课管理界面:

三、主要代码:

登录代码:

package com.bj.body;import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;import javax.swing.ImageIcon;
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 Login extends JFrame implements ActionListener {JTextField nameField;JPasswordField passwordField;public Login() {JPanel panel = new ImagePanel();add(panel);panel.setLayout(null);setTitle("系统登录");setLayout(null);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(500,200,350,300);//添加账号密码文本及文本框JLabel nameJLabel=new JLabel("账号");nameField=new JTextField();JLabel passJLabel=new JLabel("密码");passwordField=new JPasswordField();nameJLabel.setBounds(50,15,100,100);nameField.setBounds(100,50,200,30);passJLabel.setBounds(50,70,100,100);passwordField.setBounds(100,100,200,30);//登录取消按钮JButton loginButton=new JButton("登录");JButton cancelButton=new JButton("取消");loginButton.setBounds(50,150,80,30);cancelButton.setBounds(220,150,80,30);//添加到面版add(nameJLabel);add(nameField);add(passJLabel);add(passwordField);add(loginButton);add(cancelButton);//给登录取消按钮添加控件loginButton.setActionCommand("登录");cancelButton.setActionCommand("取消");loginButton.addActionListener(this);cancelButton.addActionListener(this);setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("登录")) {try {DBUtil.initst();String stuname=nameField.getText();String stupwd=passwordField.getText();//根据数据库表中的用户名查密码进行匹配DBUtil.rs=DBUtil.st.executeQuery("select password from user where name='"+stuname+"'");if (DBUtil.rs.next()) {if (DBUtil.rs.getString(1).equals(stupwd)) {//如果密码正确就显示主页面this.hide();new Main().show();} else {//如果密码错误弹出框JOptionPane.showMessageDialog(null, "密码错误,请联系管理员");}}else {//姓名不对弹出提示框JOptionPane.showMessageDialog(null, "用户不存在");}DBUtil.closeDB();} catch (SQLException ex) {ex.printStackTrace();}}else {System.exit(0);} }class ImagePanel extends JPanel {protected void paintComponent(Graphics g) {super.paintComponent(g);ImageIcon icon = new ImageIcon("icon/1.jpg");g.drawImage(icon.getImage(), 0, 0, null);}}public static void main(String[] args) {Login login=new Login();}
}

增加课程代码:

package com.bj.course;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;import com.bj.body.DBUtil;
import com.bj.selects.SelectsModel;
import com.bj.stu.AddStu;public class AddCourse extends JFrame implements ActionListener {JTextField cnoField;JTextField cnameField;JTextField creditField;public AddCourse() {setTitle("添加课程");setLayout(null);setBounds(300,300,500,500);//添加文本控件JLabel cnoJLabel=new JLabel("课程号");JLabel cnameJLabel=new JLabel("课程名");JLabel creditJLabel=new JLabel("学分");cnoField=new JTextField();cnameField=new JTextField();creditField=new JTextField();//设置控件位置和大小cnoJLabel.setBounds(50,20,100,100);cnoField.setBounds(100,50,200,30);cnameJLabel.setBounds(50,70,100,100);cnameField.setBounds(100,100,200,30);creditJLabel.setBounds(50,120,100,100);creditField.setBounds(100,150,200,30);JButton yesButton=new JButton("确定");yesButton.setBounds(100,300,80,30);JButton noButton=new JButton("取消");noButton.setBounds(200,300,80,30);add(cnoJLabel);add(cnoField);add(cnameJLabel);add(cnameField);add(creditJLabel);add(creditField);add(yesButton);add(noButton);//给添加用户设置的确定和取消按钮的监听事件yesButton.setActionCommand("确定");yesButton.addActionListener(this);noButton.setActionCommand("取消");noButton.addActionListener(this);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("确定")) {try {DBUtil.initst();String cno=cnoField.getText();String cname=cnameField.getText();String credit=creditField.getText();int n=DBUtil.st.executeUpdate("insert into course values('"+cno+"','"+cname+"','"+credit+"')");if (n>0) {JOptionPane.showMessageDialog(null, "添加成功");   } else {JOptionPane.showMessageDialog(null, "添加失败");   }DBUtil.closeDB();} catch (SQLException ex) {ex.printStackTrace();}DBUtil.closeDB();}else {this.hide();CourseModel.reload(null);}}public static void main(String[] args) {AddCourse AddCourse=new AddCourse();}
}

选择课程:

package com.bj.selects;import java.sql.SQLException;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;import com.bj.body.DBUtil;
import com.bj.body.Main;public class SelectsModel extends AbstractTableModel {public Vector clumnNames2,rowData2;public void init(String sql) {clumnNames2 =new Vector();clumnNames2.add("学号");clumnNames2.add("姓名");clumnNames2.add("课程号");clumnNames2.add("课程名");clumnNames2.add("学分");clumnNames2.add("分数");rowData2=new Vector();try {DBUtil.initps(sql);while (DBUtil.rs.next()) {Vector row=new Vector();row.add(DBUtil.rs.getString(1));row.add(DBUtil.rs.getString(2));row.add(DBUtil.rs.getString(3));row.add(DBUtil.rs.getString(4));row.add(DBUtil.rs.getString(5));row.add(DBUtil.rs.getString(6));rowData2.add(row);}DBUtil.closeDB();} catch (SQLException ex) {ex.printStackTrace();}}//刷新jTablepublic static void reload(String sql) {if (sql==null) {sql="SELECT sc.sno,stu.name,sc.cno,course.cname,credit,score FROM sc,stu,course where sc.sno=stu.sno and course.cno=sc.cno";}Main.selectsmodel.init(sql);Main.selectsmodel.fireTableDataChanged();}@Overridepublic int getColumnCount() {// TODO Auto-generated method stubreturn clumnNames2.size();}@Overridepublic int getRowCount() {// TODO Auto-generated method stubreturn rowData2.size();}@Overridepublic Object getValueAt(int rowIndex, int columnIndex) {// TODO Auto-generated method stubreturn ((Vector)rowData2.get(rowIndex)).get(columnIndex);}@Overridepublic String getColumnName(int column) {// TODO Auto-generated method stubreturn (String)clumnNames2.get(column);}
}

数据库连接:

package com.bj.body;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DBUtil {static Connection con;public static Statement st;static PreparedStatement ps;public static ResultSet rs;static String url="jdbc:mysql://localhost:3306/selectcourse?useUnicode=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=UTC";static String name="root";static String pwd="root";public static void initst() {try {Class.forName("com.mysql.cj.jdbc.Driver");con=DriverManager.getConnection(url,name,pwd);st=con.createStatement();} catch (SQLException e) {e.printStackTrace();}catch (ClassNotFoundException e) {e.printStackTrace();}}public static void initps(String sql) {try {Class.forName("com.mysql.cj.jdbc.Driver");con=DriverManager.getConnection(url,name,pwd);ps=con.prepareStatement(sql);rs= ps.executeQuery();} catch (SQLException e) {e.printStackTrace();}catch (ClassNotFoundException e) {e.printStackTrace();}}public static void closeDB() {try {if (rs!=null) {rs.close();}if (ps!=null) {ps.close();} if (st!=null) {st.close();} if (con!=null) {con.close();} } catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}
}

四、其它项目:

基于Java Swing 的通讯录管理系统

基于Java Swing记事本管理系统

基于java Swing 宿舍管理系统

基于java Swing 图书管理系统

基于Java Swing 成绩管理系统

五、获取方式:

有需要可以加QQ:571328502

点击下载

六、心灵寄语:

想要赢,就一定不能怕输。不怕输结果未必能赢,但是怕输,结果则是一定输。

PS:如有侵权,请联系删除。

基于 Eclipse+Java Swing + Mysql 学生选课管理系统相关推荐

  1. 基于Eclipse+Java+Swing+Mysql图书信息管理系统

    基于Eclipse+Java+Swing+Mysql图书信息管理系统 一.系统介绍 二.功能展示 1.主页 2.新增图书信息 3.删除图书信息 三.数据库 四.其他系统实现 五.获取源码 一.系统介绍 ...

  2. 基于Eclipse+Java+Swing+Mysql实现酒店管理系统

    基于Eclipse+Java+Swing+Mysql实现酒店管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.首页 3.开房 4.退房 5.房间信息 6.顾客信息 三.数据库 四.其它 1.其他 ...

  3. Java Swing Mysql学生选课系统

    此篇是基于Java Swing Mysql学生选课系统的第二阶段 主要功能: 课程添加.编辑.查询.删除.选课.退课.修改已选课程.以及老师.管理员.学生三种角色的权限分配 开发环境: 开发工具:Ec ...

  4. Java Swing Mysql学生信息管理系统

    通过对Swing的理解 此篇为大家推荐基于JAVA Swing Mysql学生信息管理系统 本视频教程一共分为四个阶段,每个阶段都会是上一个阶段的扩展,每一个阶段的系统都可独立作为一个完整的系统 第一 ...

  5. Java+Swing+mysql学生信息管理系统

    Java+Swing+mysql学生信息管理系统 一.系统介绍 二.功能展示 1.管理员登陆 2.学生信息查询 3.学生信息添加 4.学生信息修改 5.删除 三.系统实现 1.StudentFrame ...

  6. Java+Swing+Mysql学生宿舍管理系统

    Java+Swing+Mysql学生宿舍管理系统 一.系统介绍 二.系统展示 1.用户登陆 2.寝室查询--学生 3.学生信息查询--学生 4.宿舍管理--管理员 5.学生信息管理--管理员 6.住宿 ...

  7. 基于Eclipse+Java Swing + Mysql图书管理系统

    一.项目概要: 基于Java Swing+Mysql(8.0)数据库的图书管理系统,具备登录.图书类别管理.图书管理功能. 二.获取方式: 有需要可以加QQ:571328502 点击下载 三.界面展示 ...

  8. Java+Swing+MySQL学生成绩管理系统

    题 目: 学生成绩管理系统 摘要 在现今信息时代,生活速度的加快,使得人们越来越向信息化.数字化发展.随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,尤其是学生的考试成绩数据 ...

  9. java swing课程表设计_阶段2:手把手快速做一个Java swing mysql学生选课系统附带完整源码及视频开发教程【猿来入此自营】...

    <p> <span style="font-family:微软雅黑;font-size:16px;color:#666666;background:#FFFFFF;line ...

最新文章

  1. leetcode 5 :Longest Palindromic Substring 找出最长回文子串
  2. l#039;oracle 酒,【金钟庄园副牌干红葡萄酒Carillon de L#039;angelus】价格_年份_评分 - 酒窝网官网...
  3. (七)python3 只需3小时带你轻松入门——List与dict
  4. FFMpeg语法参数中文参考手册
  5. 发布!天池布匹疵点检测大赛解决方案与Baseline(acc:85%左右,mAP:52%左右)
  6. UVA10341 Solve It【二分】
  7. ubuntu更新源 apt-get install Unable to locate package
  8. 管理感悟:如何处理不干活的主管
  9. 【资源】About Face4交互设计精髓,英文原版,彩色pdf下载
  10. Java学生管理系统设计与实现 (超详细,含课程设计)
  11. python百度网盘-百度网盘 Python 客户端
  12. htm盒子模型与定位
  13. python-pptx----母版制作
  14. evm?衡そΑ_RGB? CMYK? Α? 什么是图像通道,它们是什么意思?
  15. FRECO联盟探营:未来还看这些“小字辈”
  16. java计算机毕业设计web扶贫产品物资管理平台MyBatis+系统+LW文档+源码+调试部署
  17. 雷赛 DMC1000B c# 获取轴(电机)状态
  18. 【自学Java】Java语言特点
  19. 真正的 IT 男是什么样的?
  20. 佳能Canon PIXMA MG4160 打印机驱动

热门文章

  1. 笔试java--链表
  2. 分布式之分布式事务、分布式锁、分布式Session
  3. Android指定物理按键唤醒屏幕
  4. python网球比赛模拟_python初体验 —— 模拟体育竞技
  5. 关于TreeView的简单使用(Qt6.4.1)
  6. chrome —— 登录账号
  7. Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)
  8. Android 8遇到的问题cat: /system/build.prop: Permission denied,如果不root,有方法解决吗?
  9. 用BibTeX 写 Reference
  10. Win32的时间类型