swing+sqlserver 学生管理系统

时间: 2023-12-12 22:00:46 浏览: 35
学生管理系统是一种基于Swing和SQL Server的软件,用于管理学生的信息和数据。Swing是一套Java图形用户界面(GUI)工具包,而SQL Server是一种关系型数据库管理系统。这种学生管理系统可以帮助学校、教育机构或其他类似组织更有效地管理和维护学生的信息。 通过Swing,用户可以方便地使用学生管理系统的各种功能和界面。系统可以提供注册学生、录入学生成绩、查询学生信息、生成学生成绩报告等各种功能。用户可以通过点击按钮、输入文本框、选择下拉菜单等方式与系统进行交互。Swing提供的丰富组件和布局管理器可以使界面看起来更加美观和易于使用。 而SQL Server可以作为学生管理系统的后端数据库,用于存储和操作学生的信息。可以创建学生表,包含学生的姓名、年龄、性别、班级等字段。通过SQL语句,可以进行数据的增、删、改、查。例如,可以使用INSERT语句将新注册的学生信息插入到数据库中,使用SELECT语句查询并显示学生的成绩等。 学生管理系统可以降低学校管理学生信息的难度和复杂度。它能够提供简洁快捷的界面,方便用户进行各种操作。同时,通过SQL Server的支持,可以快速、准确地存储和管理大量学生的信息。系统还可以提供各种报表和分析功能,帮助学校更好地了解学生的情况和成绩趋势。 综上所述,基于Swing和SQL Server的学生管理系统可以提供方便、高效、准确的学生信息管理和分析功能,对于提高学校的管理水平和教学质量具有重要意义。
相关问题

帮我写一份Javaswing基于SQLserver的学生信息管理系统

好的,以下是一个基于Java Swing和SQL Server的学生信息管理系统的示例代码: 1. 数据库连接部分 ```java import java.sql.*; public class DatabaseConnection { static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; static final String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=student"; static final String USER = "yourusername"; static final String PASSWORD = "yourpassword"; public Connection getConnection() { Connection conn = null; try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, USER, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } } ``` 2. 主界面部分 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MainFrame extends JFrame implements ActionListener { private JButton addButton, searchButton, updateButton, deleteButton, reportButton; public MainFrame() { super("学生信息管理系统"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new FlowLayout()); addButton = new JButton("添加"); searchButton = new JButton("查询"); updateButton = new JButton("修改"); deleteButton = new JButton("删除"); reportButton = new JButton("报告"); addButton.addActionListener(this); searchButton.addActionListener(this); updateButton.addActionListener(this); deleteButton.addActionListener(this); reportButton.addActionListener(this); add(addButton); add(searchButton); add(updateButton); add(deleteButton); add(reportButton); pack(); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { new AddFrame(); } else if (e.getSource() == searchButton) { new SearchFrame(); } else if (e.getSource() == updateButton) { new UpdateFrame(); } else if (e.getSource() == deleteButton) { new DeleteFrame(); } else if (e.getSource() == reportButton) { new ReportFrame(); } } } ``` 3. 添加学生信息部分 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class AddFrame extends JFrame implements ActionListener { private JLabel nameLabel, genderLabel, ageLabel, majorLabel; private JTextField nameText, genderText, ageText, majorText; private JButton addButton, cancelButton; public AddFrame() { super("添加学生信息"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(new GridLayout(5, 2)); nameLabel = new JLabel("姓名:"); genderLabel = new JLabel("性别:"); ageLabel = new JLabel("年龄:"); majorLabel = new JLabel("专业:"); nameText = new JTextField(20); genderText = new JTextField(20); ageText = new JTextField(20); majorText = new JTextField(20); addButton = new JButton("添加"); cancelButton = new JButton("取消"); addButton.addActionListener(this); cancelButton.addActionListener(this); add(nameLabel); add(nameText); add(genderLabel); add(genderText); add(ageLabel); add(ageText); add(majorLabel); add(majorText); add(addButton); add(cancelButton); pack(); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { String name = nameText.getText().trim(); String gender = genderText.getText().trim(); int age = Integer.parseInt(ageText.getText().trim()); String major = majorText.getText().trim(); Connection conn = new DatabaseConnection().getConnection(); try { PreparedStatement ps = conn.prepareStatement("INSERT INTO student VALUES (?, ?, ?, ?)"); ps.setString(1, name); ps.setString(2, gender); ps.setInt(3, age); ps.setString(4, major); ps.executeUpdate(); JOptionPane.showMessageDialog(this, "添加成功!"); dispose(); } catch (SQLException ex) { ex.printStackTrace(); } } else if (e.getSource() == cancelButton) { dispose(); } } } ``` 4. 查询学生信息部分 ```java import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class SearchFrame extends JFrame implements ActionListener { private JLabel nameLabel; private JTextField nameText; private JButton searchButton, cancelButton; private JTable table; public SearchFrame() { super("查询学生信息"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(new BorderLayout()); nameLabel = new JLabel("姓名:"); nameText = new JTextField(20); searchButton = new JButton("查询"); cancelButton = new JButton("取消"); searchButton.addActionListener(this); cancelButton.addActionListener(this); JPanel topPanel = new JPanel(); topPanel.add(nameLabel); topPanel.add(nameText); topPanel.add(searchButton); topPanel.add(cancelButton); table = new JTable(); JScrollPane scrollPane = new JScrollPane(table); add(topPanel, BorderLayout.NORTH); add(scrollPane, BorderLayout.CENTER); setSize(500, 300); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == searchButton) { String name = nameText.getText().trim(); Connection conn = new DatabaseConnection().getConnection(); try { PreparedStatement ps = conn.prepareStatement("SELECT * FROM student WHERE name=?"); ps.setString(1, name); ResultSet rs = ps.executeQuery(); DefaultTableModel model = new DefaultTableModel(); model.addColumn("姓名"); model.addColumn("性别"); model.addColumn("年龄"); model.addColumn("专业"); while (rs.next()) { Object[] row = new Object[4]; row[0] = rs.getString("name"); row[1] = rs.getString("gender"); row[2] = rs.getInt("age"); row[3] = rs.getString("major"); model.addRow(row); } table.setModel(model); } catch (SQLException ex) { ex.printStackTrace(); } } else if (e.getSource() == cancelButton) { dispose(); } } } ``` 5. 修改学生信息部分 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UpdateFrame extends JFrame implements ActionListener { private JLabel nameLabel, genderLabel, ageLabel, majorLabel; private JTextField nameText, genderText, ageText, majorText; private JButton searchButton, updateButton, cancelButton; public UpdateFrame() { super("修改学生信息"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(new GridLayout(5, 2)); nameLabel = new JLabel("姓名:"); genderLabel = new JLabel("性别:"); ageLabel = new JLabel("年龄:"); majorLabel = new JLabel("专业:"); nameText = new JTextField(20); genderText = new JTextField(20); ageText = new JTextField(20); majorText = new JTextField(20); searchButton = new JButton("查询"); updateButton = new JButton("修改"); cancelButton = new JButton("取消"); searchButton.addActionListener(this); updateButton.addActionListener(this); cancelButton.addActionListener(this); nameText.setEditable(false); genderText.setEditable(false); ageText.setEditable(false); majorText.setEditable(false); add(nameLabel); add(nameText); add(genderLabel); add(genderText); add(ageLabel); add(ageText); add(majorLabel); add(majorText); add(updateButton); add(cancelButton); pack(); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == searchButton) { String name = JOptionPane.showInputDialog(this, "请输入要修改的学生姓名:"); Connection conn = new DatabaseConnection().getConnection(); try { PreparedStatement ps = conn.prepareStatement("SELECT * FROM student WHERE name=?"); ps.setString(1, name); ResultSet rs = ps.executeQuery(); if (rs.next()) { nameText.setText(rs.getString("name")); genderText.setText(rs.getString("gender")); ageText.setText(Integer.toString(rs.getInt("age"))); majorText.setText(rs.getString("major")); nameText.setEditable(true); genderText.setEditable(true); ageText.setEditable(true); majorText.setEditable(true); } else { JOptionPane.showMessageDialog(this, "未找到该学生信息!"); } } catch (SQLException ex) { ex.printStackTrace(); } } else if (e.getSource() == updateButton) { String name = nameText.getText().trim(); String gender = genderText.getText().trim(); int age = Integer.parseInt(ageText.getText().trim()); String major = majorText.getText().trim(); Connection conn = new DatabaseConnection().getConnection(); try { PreparedStatement ps = conn.prepareStatement("UPDATE student SET gender=?, age=?, major=? WHERE name=?"); ps.setString(1, gender); ps.setInt(2, age); ps.setString(3, major); ps.setString(4, name); ps.executeUpdate(); JOptionPane.showMessageDialog(this, "修改成功!"); dispose(); } catch (SQLException ex) { ex.printStackTrace(); } } else if (e.getSource() == cancelButton) { dispose(); } } } ``` 6. 删除学生信息部分 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DeleteFrame extends JFrame implements ActionListener { private JLabel nameLabel; private JTextField nameText; private JButton searchButton, deleteButton, cancelButton; public DeleteFrame() { super("删除学生信息"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(new GridLayout(2, 2)); nameLabel = new JLabel("姓名:"); nameText = new JTextField(20); searchButton = new JButton("查询"); deleteButton = new JButton("删除"); cancelButton = new JButton("取消"); searchButton.addActionListener(this); deleteButton.addActionListener(this); cancelButton.addActionListener(this); add(nameLabel); add(nameText); add(searchButton); add(deleteButton); add(cancelButton); pack(); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == searchButton) { String name = nameText.getText().trim(); Connection conn = new DatabaseConnection().getConnection(); try { PreparedStatement ps = conn.prepareStatement("SELECT * FROM student WHERE name=?"); ps.setString(1, name); ResultSet rs = ps.executeQuery(); if (rs.next()) { int option = JOptionPane.showConfirmDialog(this, "是否确认删除该学生信息?"); if (option == JOptionPane.YES_OPTION) { ps = conn.prepareStatement("DELETE FROM student WHERE name=?"); ps.setString(1, name); ps.executeUpdate(); JOptionPane.showMessageDialog(this, "删除成功!"); dispose(); } } else { JOptionPane.showMessageDialog(this, "未找到该学生信息!"); } } catch (SQLException ex) { ex.printStackTrace(); } } else if (e.getSource() == deleteButton) { dispose(); } else if (e.getSource() == cancelButton) { dispose(); } } } ``` 7. 生成报告部分 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileOutputStream; import java.net.URL; import java.sql.Connection; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; public class ReportFrame extends JFrame implements ActionListener { private JButton reportButton, cancelButton; public ReportFrame() { super("生成报告"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(new FlowLayout()); reportButton = new JButton("生成报告"); cancelButton = new JButton("取消"); reportButton.addActionListener(this); cancelButton.addActionListener(this); add(reportButton); add(cancelButton); pack(); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == reportButton) { Connection conn = new DatabaseConnection().getConnection(); try { URL url = getClass().getResource("/report/student_info.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(url.openStream()); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, conn); JasperViewer.viewReport(jasperPrint, false); File file = new File("D:/student_info.pdf"); if (!file.exists()) { file.createNewFile(); } FileOutputStream fos = new FileOutputStream(file); net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfStream(jasperPrint, fos); fos.close(); JOptionPane.showMessageDialog(this, "报告已生成!"); dispose(); } catch (Exception ex) { ex.printStackTrace(); } } else if (e.getSource() == cancelButton) { dispose(); } } } ``` 这是一个简单的学生信息管理系统的示例代码,您可以根据需求进行修改和完善。希望对您有帮助!

JavaSQL学生信息管理系统

Java SQL学生信息管理系统是一个基于Java Swing的应用程序,用于管理学生信息。它包括登录、注册和学生信息的显示、添加、修改、删除、查询等功能。该系统的运行环境为JDK12,开发环境为Eclipse和SQL Server 2008。 该系统的开发分为两个主要步骤。第一步是需求分析,确定系统的基本功能和权限。第二步是数据库设计,包括创建数据库、建表和视图、录入数据等。 以下是Java SQL学生信息管理系统的基本功能模块: 1. 登录模块:管理员、教师和学生可以登录系统。 2. 注册模块:新用户可以注册账号。 3. 学生信息显示模块:管理员、教师和学生可以查看学生信息。 4. 学生信息添加模块:管理员和教师可以添加新的学生信息。 5. 学生信息修改模块:管理员和教师可以修改学生信息。 6. 学生信息删除模块:管理员和教师可以删除学生信息。 7. 学生信息查询模块:管理员、教师和学生可以查询学生信息。 以下是Java SQL学生信息管理系统的数据库设计步骤: 1. 创建名为“学生学籍信息管理系统”的数据库。 2. 建表和视图,包括学生信息表、管理员表、教师表、登录表等。 3. 录入数据,包括学生信息、管理员信息、教师信息等。 ```java // 示例代码 // 连接数据库 Connection conn = DriverManager.getConnection(url, username, password); // 创建Statement对象 Statement stmt = conn.createStatement(); // 执行SQL语句 String sql = "SELECT * FROM student"; ResultSet rs = stmt.executeQuery(sql); // 处理结果集 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } // 关闭连接 rs.close(); stmt.close(); conn.close(); ```

相关推荐

最新推荐

recommend-type

通信电源蓄电池组容量性充放电试验三措一案.docx

5G通信行业、网络优化、通信工程建设资料。
recommend-type

铁塔维护检测手段.docx

5G通信行业、网络优化、通信工程建设资料
recommend-type

通信设备安装施工组织方案.doc

5G通信、网络优化与通信建设
recommend-type

299-教育行业信息化与数据平台建设分享.pptx

299-教育行业信息化与数据平台建设分享.pptx
recommend-type

手写数字和字母数据集binaryalphadigs.mat

手写数字和字母数据集binaryalphadigs.mat
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

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

:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章

![:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章](https://img-blog.csdnimg.cn/img_convert/69b98e1a619b1bb3c59cf98f4e397cd2.png) # 1. 目标检测算法概述 目标检测算法是一种计算机视觉技术,用于识别和定位图像或视频中的对象。它在各种应用中至关重要,例如自动驾驶、视频监控和医疗诊断。 目标检测算法通常分为两类:两阶段算法和单阶段算法。两阶段算法,如 R-CNN 和 Fast R-CNN,首先生成候选区域,然后对每个区域进行分类和边界框回归。单阶段算法,如 YOLO 和 SSD,一次性执行检
recommend-type

ActionContext.getContext().get()代码含义

ActionContext.getContext().get() 是从当前请求的上下文对象中获取指定的属性值的代码。在ActionContext.getContext()方法的返回值上,调用get()方法可以获取当前请求中指定属性的值。 具体来说,ActionContext是Struts2框架中的一个类,它封装了当前请求的上下文信息。在这个上下文对象中,可以存储一些请求相关的属性值,比如请求参数、会话信息、请求头、应用程序上下文等等。调用ActionContext.getContext()方法可以获取当前请求的上下文对象,而调用get()方法可以获取指定属性的值。 例如,可以使用 Acti
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。