Java学生管理系统:数据库持久化实战
Java学生管理系统:数据库持久化实战
本文将引导你使用Java创建一个功能完备的学生管理系统,并重点讲解如何利用数据库实现数据的持久化存储。
一、系统概述
1. 管理对象:
- 学生信息:学号、姓名、性别、民族、班级、照片等。* 班级信息:班级编号、班级名称。
2. 功能模块:
- 班级管理:增删改查班级信息。* 学生管理: * 添加学生信息 * 修改学生信息 * 删除学生信息 * 基于不同条件查询学生信息
二、数据库设计
我们使用关系型数据库(如MySQL)来存储数据,创建两张表:
- 学生表(student): 存储学生信息。 * studentID (VARCHAR):学号,主键 * name (VARCHAR): 姓名 * gender (VARCHAR): 性别 * nationality (VARCHAR): 民族 * className (VARCHAR): 班级 * photo (VARCHAR): 照片路径* 班级表(class): 存储班级信息。 * classID (VARCHAR): 班级编号,主键 * className (VARCHAR): 班级名称
三、Java代码实现
1. 项目搭建
创建一个Java项目,并引入JDBC驱动程序(例如:MySQL Connector/J)。
2. 实体类创建
创建Student和Class实体类,分别对应数据库中的两张表,并添加相应的属性和getter/setter方法。javapublic class Student { private String studentID; private String name; private String gender; private String nationality; private String className; private String photo;
// 构造方法和getter、setter方法
// ...}javapublic class Class { private String classID; private String className;
// 构造方法和getter、setter方法
// ...}
3. 数据操作类
创建一个StudentManagementSystem类,编写数据库连接、增删改查等功能方法。javaimport java.sql.*;
public class StudentManagementSystem { private static final String DB_URL = 'jdbc:mysql://localhost:3306/db_name'; private static final String DB_USER = 'your_username'; private static final String DB_PASSWORD = 'your_password';
// 连接数据库 private Connection getConnection() throws SQLException { return DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); }
// 添加学生信息 public void addStudent(Student student) throws SQLException { Connection connection = getConnection(); try (PreparedStatement preparedStatement = connection.prepareStatement('INSERT INTO student VALUES (?, ?, ?, ?, ?, ?)')) { preparedStatement.setString(1, student.getStudentID()); preparedStatement.setString(2, student.getName()); preparedStatement.setString(3, student.getGender()); preparedStatement.setString(4, student.getNationality()); preparedStatement.setString(5, student.getClassName()); preparedStatement.setString(6, student.getPhoto()); preparedStatement.executeUpdate(); } }
// 修改学生信息 public void updateStudent(Student student) throws SQLException { Connection connection = getConnection(); try (PreparedStatement preparedStatement = connection.prepareStatement('UPDATE student SET name=?, gender=?, nationality=?, className=?, photo=? WHERE studentID=?')) { preparedStatement.setString(1, student.getName()); preparedStatement.setString(2, student.getGender()); preparedStatement.setString(3, student.getNationality()); preparedStatement.setString(4, student.getClassName()); preparedStatement.setString(5, student.getPhoto()); preparedStatement.setString(6, student.getStudentID()); preparedStatement.executeUpdate(); } }
// 删除学生信息 public void deleteStudent(String studentID) throws SQLException { Connection connection = getConnection(); try (PreparedStatement preparedStatement = connection.prepareStatement('DELETE FROM student WHERE studentID=?')) { preparedStatement.setString(1, studentID); preparedStatement.executeUpdate(); } }
// 查询学生信息 public List<Student> searchStudent(String className) throws SQLException { List<Student> students = new ArrayList<>(); Connection connection = getConnection(); try (PreparedStatement preparedStatement = connection.prepareStatement('SELECT * FROM student WHERE className=?')) { preparedStatement.setString(1, className); try (ResultSet resultSet = preparedStatement.executeQuery()) { while (resultSet.next()) { Student student = new Student(); student.setStudentID(resultSet.getString('studentID')); student.setName(resultSet.getString('name')); student.setGender(resultSet.getString('gender')); student.setNationality(resultSet.getString('nationality')); student.setClassName(resultSet.getString('className')); student.setPhoto(resultSet.getString('photo')); students.add(student); } } } return students; }
// 其他功能方法...}
四、总结
本文提供了一个简单的Java学生管理系统框架,并演示了如何使用JDBC进行数据库操作。你可以根据实际需求扩展功能,例如:
- 添加用户登录和权限控制* 实现更复杂的查询条件* 设计友好的用户界面
希望这篇文章能帮助你理解如何使用Java和数据库构建一个实用应用程序!
原文地址: https://www.cveoy.top/t/topic/leh 著作权归作者所有。请勿转载和采集!