Java 学生管理系统代码

时间: 2024-05-12 12:12:27 浏览: 12
Java 学生管理系统是一个常见的Java课程设计题目,其主要功能是对学生信息进行管理,包括添加学生信息、修改学生信息、删除学生信息以及查询学生信息等操作。具体的代码实现可以根据不同的需求而有所不同,但一般包括以下几个模块: 1. 学生类模块:定义学生类,包括学号、姓名、性别、年龄、班级等属性,并提供相应的get和set方法。 2. 数据库操作模块:包括连接数据库、创建数据库表、插入数据、删除数据、修改数据以及查询数据等操作。 3. 用户界面模块:提供用户界面,让用户可以通过界面完成对学生信息的增删改查等操作。 以下是一个简单的Java学生管理系统代码示例: ``` // 学生类 public class Student { private String id; private String name; private String gender; private int age; private String className; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } } // 数据库操作类 public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=GMT%2B8"; private static final String USER = "root"; private static final String PASSWORD = "123456"; public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return conn; } public static void close(Connection conn, Statement stmt, ResultSet rs) { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 创建数据库表 public static void createTable() { Connection conn = getConnection(); Statement stmt = null; try { stmt = conn.createStatement(); String sql = "create table if not exists student(id varchar(20), name varchar(20), gender varchar(4), age int, className varchar(20))"; stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, stmt, null); } } // 插入数据 public static void insert(Student student) { Connection conn = getConnection(); PreparedStatement pstmt = null; try { String sql = "insert into student(id, name, gender, age, className) values(?, ?, ?, ?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, student.getId()); pstmt.setString(2, student.getName()); pstmt.setString(3, student.getGender()); pstmt.setInt(4, student.getAge()); pstmt.setString(5, student.getClassName()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, pstmt, null); } } // 修改数据 public static void update(Student student) { Connection conn = getConnection(); PreparedStatement pstmt = null; try { String sql = "update student set name=?, gender=?, age=?, className=? where id=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, student.getName()); pstmt.setString(2, student.getGender()); pstmt.setInt(3, student.getAge()); pstmt.setString(4, student.getClassName()); pstmt.setString(5, student.getId()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, pstmt, null); } } // 删除数据 public static void delete(String id) { Connection conn = getConnection(); PreparedStatement pstmt = null; try { String sql = "delete from student where id=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, id); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, pstmt, null); } } // 查询数据 public static List<Student> query(String keyword) { Connection conn = getConnection(); PreparedStatement pstmt = null; ResultSet rs = null; List<Student> list = new ArrayList<>(); try { String sql = "select * from student where name like ? or className like ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "%" + keyword + "%"); pstmt.setString(2, "%" + keyword + "%"); rs = pstmt.executeQuery(); while (rs.next()) { Student student = new Student(); student.setId(rs.getString("id")); student.setName(rs.getString("name")); student.setGender(rs.getString("gender")); student.setAge(rs.getInt("age")); student.setClassName(rs.getString("className")); list.add(student); } } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, pstmt, rs); } return list; } } // 用户界面类 public class StudentFrame extends JFrame implements ActionListener{ private JTextField tfId, tfName, tfGender, tfAge, tfClassName; private JButton btnAdd, btnUpdate, btnDelete, btnQuery; private JTable table; public StudentFrame() { initUI(); } // 初始化用户界面 private void initUI() { setTitle("学生管理系统"); JPanel panel1 = new JPanel(new GridLayout(5, 2)); panel1.add(new JLabel("学号:")); tfId = new JTextField(20); panel1.add(tfId); panel1.add(new JLabel("姓名:")); tfName = new JTextField(20); panel1.add(tfName); panel1.add(new JLabel("性别:")); tfGender = new JTextField(20); panel1.add(tfGender); panel1.add(new JLabel("年龄:")); tfAge = new JTextField(20); panel1.add(tfAge); panel1.add(new JLabel("班级:")); tfClassName = new JTextField(20); panel1.add(tfClassName); JPanel panel2 = new JPanel(new FlowLayout()); btnAdd = new JButton("添加"); btnAdd.addActionListener(this); btnUpdate = new JButton("修改"); btnUpdate.addActionListener(this); btnDelete = new JButton("删除"); btnDelete.addActionListener(this); btnQuery = new JButton("查询"); btnQuery.addActionListener(this); panel2.add(btnAdd); panel2.add(btnUpdate); panel2.add(btnDelete); JPanel panel3 = new JPanel(new BorderLayout()); table = new JTable(); JScrollPane scrollPane = new JScrollPane(table); panel3.add(scrollPane, BorderLayout.CENTER); add(panel1, BorderLayout.NORTH); add(panel2, BorderLayout.CENTER); add(panel3, BorderLayout.SOUTH); setSize(800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } // 实现按钮事件处理 @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btnAdd) { // 添加学生信息 Student student = getStudentFromUI(); DBUtil.insert(student); } else if (e.getSource() == btnUpdate) { // 修改学生信息 Student student = getStudentFromUI(); DBUtil.update(student); } else if (e.getSource() == btnDelete) { // 删除学生信息 String id = tfId.getText().trim(); DBUtil.delete(id); } else if (e.getSource() == btnQuery) { // 查询学生信息 String keyword = tfName.getText().trim(); List<Student> list = DBUtil.query(keyword); showTableData(list); } } // 从用户界面获取学生信息 private Student getStudentFromUI() { Student student = new Student(); student.setId(tfId.getText().trim()); student.setName(tfName.getText().trim()); student.setGender(tfGender.getText().trim()); student.setAge(Integer.parseInt(tfAge.getText().trim())); student.setClassName(tfClassName.getText().trim()); return student; } // 显示查询结果到表格中 private void showTableData(List<Student> list) { DefaultTableModel model = new DefaultTableModel(new Object[][] {}, new Object[] {"学号", "姓名", "性别", "年龄", "班级"}); for (Student student : list) { Object[] row = {student.getId(), student.getName(), student.getGender(), student.getAge(), student.getClassName()}; model.addRow(row); } table.setModel(model); } } // 主程序入口 public class Main { public static void main(String[] args) { DBUtil.createTable(); // 创建数据库表 new StudentFrame(); // 启动用户界面 } }

相关推荐

最新推荐

recommend-type

【java课设】学生选课系统.pdf

根据课程信息和学生信息完成对课程的选修,需要专门的一个管理类来完成选修工作。 2、功能要求 (1)添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所要添加的类别,要求编号要唯一,如果添加...
recommend-type

java(swing)+ mysql实现学生信息管理系统

主要分享了java mysql实现学生信息管理系统的源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java学生管理系统界面简单实现(全)

主要为大家详细介绍了java学生管理系统界面的简单实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java面向对象之学生信息管理系统

主要为大家详细介绍了java面向对象之学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java实现简单的学生信息管理系统代码实例

主要介绍了java实现简单的学生信息管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。