题目:学生信息管理模块设计与开发
具体要求:使用Java和JDBC技术实现以下功能,并撰写完
整实验报告。
1、主要功能:完成学生基本信息管理功能(查询、添加、更新、
删除)
2、学生基本信息包括:学号(字符串)、姓名(字符串)、性别
(字符串)、出生日期(日期类型)、政治面貌(字符串:群众、
预备党员、党员)、专业(字符串)、体重(浮点型)、联系电话
(字符串)、家庭住址(字符串)
3、查询功能:按照学号精确查询、按照姓名模糊查询、无条件全
查;
4、更新功能:学号、姓名、性别不可以修改,其余字段均可修
改;
5、删除功能:按照学号删除指定学生信息;
6、主程序测试各种功能,并将结果以控制台方式输出。
7、实验报告中需要体现出数据库设计、程序代码和运行结果。
学生信息管理模块的设计和开发涉及以下几个方面:数据库设计、Java代码实现以及实验报告的撰写。我将为您提供一个基本的框架,您可以根据需要进行进一步的开发和完善。
数据库设计:
id(自增主键)
student_id(字符串类型,学号)
name(字符串类型,姓名)
gender(字符串类型,性别)
birth_date(日期类型,出生日期)
political_status(字符串类型,政治面貌)
major(字符串类型,专业)
weight(浮点型,体重)
contact_number(字符串类型,联系电话)
home_address(字符串类型,家庭住址)
创建一个名为 students 的表,包含以下字段:
Java代码实现:
使用 JDBC 连接数据库,对数据库进行增删改查操作。
创建一个 Student 类来表示学生信息,包含与数据库中的字段对应的属性和相应的 getter 和 setter 方法。
创建一个 StudentDao 类来处理数据库操作,包括查询、添加、更新和删除学生信息的方法。
在主程序中测试各种功能,例如按学号查询、按姓名查询、全查、添加学生、更新学生信息和删除学生等。
实验报告撰写:
开始部分:介绍实验目的、背景和所用的技术工具。
数据库设计:展示表结构和字段含义,并解释设计选择的原因。
程序代码:展示关键的 Java 代码片段,包括 Student 类和 StudentDao 类的定义以及主程序中功能的调用。
运行结果:展示程序运行的截图或输出结果,包括各种功能的测试结果。
总结和展望:总结实验过程中遇到的问题和解决方案,对实验结果进行分析和评价,并提出可能的改进方向。
import java.sql.*; import java.util.ArrayList; import java.util.List; public class StudentDao { private Connection connection; public StudentDao() { // 在构造函数中建立数据库连接 try { connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password"); } catch (SQLException e) { e.printStackTrace(); } } // 查询所有学生信息 public List<Student> getAllStudents() { List<Student> students = new ArrayList<>(); try { Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM students"); while (resultSet.next()) { Student student = new Student(); student.setStudentId(resultSet.getString("student_id")); student.setName(resultSet.getString("name")); student.setGender(resultSet.getString("gender")); student.setBirthDate(resultSet.getDate("birth_date")); student.setPoliticalStatus(resultSet.getString("political_status")); student.setMajor(resultSet.getString("major")); student.setWeight(resultSet.getFloat("weight")); student.setContactNumber(resultSet.getString("contact_number")); student.setHomeAddress(resultSet.getString("home_address")); students.add(student); } } catch (SQLException e) { e.printStackTrace(); } return students; } // 按照学号精确查询学生信息 public Student getStudentByStudentId(String studentId) { Student student = null; try { PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM students WHERE student_id = ?"); preparedStatement.setString(1, studentId); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { student = new Student(); student.setStudentId(resultSet.getString("student_id")); student.setName(resultSet.getString("name")); student.setGender(resultSet.getString("gender")); student.setBirthDate(resultSet.getDate("birth_date")); student.setPoliticalStatus(resultSet.getString("political_status")); student.setMajor(resultSet.getString("major")); student.setWeight(resultSet.getFloat("weight")); student.setContactNumber(resultSet.getString("contact_number")); student.setHomeAddress(resultSet.getString("home_address")); } } catch (SQLException e) { e.printStackTrace(); } return student; } // 按照姓名模糊查询学生信息 public List<Student> getStudentsByName(String name) { List<Student> students = new ArrayList<>(); try { PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM students WHERE name LIKE ?"); preparedStatement.setString(1, "%" + name + "%"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { Student student = new Student(); student.setStudentId(resultSet.getString("student_id")); student.setName(resultSet.getString("name")); student.setGender(resultSet.getString("gender")); student.setBirthDate(resultSet.getDate("birth_date")); student.setPoliticalStatus(resultSet.getString("political_status")); student.setMajor(resultSet.getString("major")); student.setWeight(resultSet.getFloat("weight")); student.setContactNumber(resultSet.getString("contact_number")); student.setHomeAddress(resultSet.getString("home_address")); students.add(student); } } catch (SQLException e) { e.printStackTrace(); } return students; } // 添加学生信息 public void addStudent(Student student) { try { PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO students (student_id, name, gender, birth_date, political_status, major, weight, contact_number, home_address) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"); preparedStatement.setString(1, student.getStudentId()); preparedStatement.setString(2, student.getName()); preparedStatement.setString(3, student.getGender()); preparedStatement.setDate(4, new Date(student.getBirthDate().getTime())); preparedStatement.setString(5, student.getPoliticalStatus()); preparedStatement.setString(6, student.getMajor()); preparedStatement.setFloat(7, student.getWeight()); preparedStatement.setString(8, student.getContactNumber()); preparedStatement.setString(9, student.getHomeAddress()); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } // 更新学生信息 public void updateStudent(Student student) { try { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE students SET name = ?, gender = ?, birth_date = ?, political_status = ?, major = ?, weight = ?, contact_number = ?, home_address = ? WHERE student_id = ?"); preparedStatement.setString(1, student.getName()); preparedStatement.setString(2, student.getGender()); preparedStatement.setDate(3, new Date(student.getBirthDate().getTime())); preparedStatement.setString(4, student.getPoliticalStatus()); preparedStatement.setString(5, student.getMajor()); preparedStatement.setFloat(6, student.getWeight()); preparedStatement.setString(7, student.getContactNumber()); preparedStatement.setString(8, student.getHomeAddress()); preparedStatement.setString(9, student.getStudentId()); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } // 删除学生信息 public void deleteStudent(String studentId) { try { PreparedStatement preparedStatement = connection.prepareStatement("DELETE FROM students WHERE student_id = ?"); preparedStatement.setString(1, studentId); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public void close() { // 关闭数据库连接 try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } public class Student { private String studentId; private String name; private String gender; private Date birthDate; private String politicalStatus; private String major; private float weight; private String contactNumber; private String homeAddress; // getter 和 setter 方法省略 @Override public String toString() { return "Student{" + "studentId='" + studentId + '\'' + ", name='" + name + '\'' + ", gender='" + gender + '\'' + ", birthDate=" + birthDate + ", politicalStatus='" + politicalStatus + '\'' + ", major='" + major + '\'' + ", weight=" + weight + ", contactNumber='" + contactNumber + '\'' + ", homeAddress='" + homeAddress + '\'' + '}'; } } public class Main { public static void main(String[] args) { StudentDao studentDao = new StudentDao(); // 查询所有学生信息 List<Student> allStudents = studentDao.getAllStudents(); System.out.println("所有学生信息:"); for (Student student : allStudents) { System.out.println(student); } System.out.println(); // 按照学号精确查询学生信息 Student student1 = studentDao.getStudentByStudentId("1001"); System.out.println("学号为1001的学生信息:"); System.out.println(student1); System.out.println(); // 按照姓名模糊查询学生信息 List<Student> studentsWithName = studentDao.getStudentsByName("张"); System.out.println("姓名包含“张”的学生信息:"); for (Student student : studentsWithName) { System.out.println(student); } System.out.println(); // 添加学生信息 Student student2 = new Student(); student2.setStudentId("1002"); student2.setName("李四"); student2.setGender("男"); student2.setBirthDate(new Date(System.currentTimeMillis())); student2.setPoliticalStatus("群众"); student2.setMajor("计算机科学"); student2.setWeight(65.0f); student2.setContactNumber("1234567890"); student2.setHomeAddress("北京市"); studentDao.addStudent(student2); System.out.println("添加学生信息后的所有学生信息:"); allStudents = studentDao.getAllStudents(); for (Student student : allStudents) { System.out.println(student); } System.out.println(); // 更新学生信息 Student student3 = new Student(); student3.setStudentId("1002"); student3.setName("王五"); student3.setGender("男"); student3.setBirthDate(new Date(System.currentTimeMillis())); student3.setPoliticalStatus("预备党员"); student3.setMajor("软件工程"); student3.setWeight(70.0f); student3.setContactNumber("9876543210"); student3.setHomeAddress("上海市"); studentDao.updateStudent(student3); System.out.println("更新学生信息后的所有学生信息:"); allStudents = studentDao.getAllStudents(); for (Student student : allStudents) { System.out.println(student); } System.out.println(); // 删除学生信息 studentDao.deleteStudent("1002"); System.out.println("删除学生信息后的所有学生信息:"); allStudents = studentDao.getAllStudents(); for (Student student : allStudents) { System.out.println(student); } System.out.println(); studentDao.close(); } }
鄂ICP备2023011697号-1 | Powered By 91代做