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();
```