已经用idea创建了三个类,分别是Main类,Student类,StudentManager类,
写出了一个学生管理系统,并连接了mysql数据库
怎么在这基础上进行修改,将数据库操作封装到ORM类中。
代码Main类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws SQLException {
StudentManager studentManager = new StudentManager();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入数字选择操作:");
System.out.println("1. 添加学生");
System.out.println("2. 删除学生");
System.out.println("3. 更新学生信息");
System.out.println("4. 查找学生");
System.out.println("5. 打印所有学生信息");
System.out.println("0. 退出程序");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入学生姓名:");
String name = scanner.next();
System.out.println("请输入学生性别:");
String gender = scanner.next();
System.out.println("请输入学生年龄:");
int age = scanner.nextInt();
System.out.println("请输入学生学号:");
String studentID = scanner.next();
Student newStudent = new Student(name, gender, age, studentID);
studentManager.addStudent(newStudent);
break;
case 2:
System.out.println("请输入学生学号:");
String deleteID = scanner.next();
studentManager.deleteStudent(deleteID);
break;
case 3:
System.out.println("请输入学生学号:");
String updateID = scanner.next();
System.out.println("请输入新的学生姓名:");
String newName = scanner.next();
System.out.println("请输入新的学生性别:");
String newGender = scanner.next();
System.out.println("请输入新的学生年龄:");
int newAge = scanner.nextInt();
System.out.println("请输入新的学生学号:");
String newStudentID = scanner.next();
Student newStudentInfo = new Student(newName, newGender, newAge, newStudentID);
studentManager.updateStudent(updateID, newStudentInfo);
break;
case 4:
System.out.println("请输入学生学号:");
String findID = scanner.next();
Student foundStudent = studentManager.findStudent(findID);
if (foundStudent == null) {
System.out.println("未找到该学生!");
} else {
System.out.println(foundStudent);
}
break;
case 5:
studentManager.printAllStudents();
break;
case 0:
System.out.println("感谢使用学生管理系统!");
System.exit(0);
break;
default:
System.out.println("输入无效,请重新输入!");
break;
}
}
}
}
Student类
public class Student {
private String name;
private String gender;
private int age;
private String studentID;
public Student(String name, String gender, int age, String studentID) {
this.name = name;
this.gender = gender;
this.age = age;
this.studentID = studentID;
}
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 getStudentID() {
return studentID;
}
public void setStudentID(String studentID) {
this.studentID = studentID;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", studentID='" + studentID + '\'' +
'}';
}
}
StudentManager 类
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentManager {
private List<Student> students = new ArrayList<>();
private Connection conn;
public StudentManager() {
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student_db", "root", "");
ORM<Student> orm = new ORM<>(conn, "student_info");
List<Student> studentList = orm.findAll();
students.addAll(studentList);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void addStudent(Student student) {
try {
ORM<Student> orm = new ORM<>(conn, "student_info");
orm.insert(student);
students.add(student);
System.out.println("添加学生成功!");
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteStudent(String studentID) {
try {
ORM<Student> orm = new ORM<>(conn, "student_info");
orm.delete("student_id", studentID);
for (Student student : students) {
if (student.getStudentID().equals(studentID)) {
students.remove(student);
System.out.println("删除学生成功!");
return;
}
}
System.out.println("未找到该学生!");
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateStudent(String studentID, Student newStudent) {
try {
ORM<Student> orm = new ORM<>(conn, "student_info");
orm.update("student_id", studentID, newStudent);
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
if (student.getStudentID().equals(studentID)) {
students.set(i, newStudent);
System.out.println("更新学生信息成功!");
return;
}
}
System.out.println("未找到该学生!");
} catch (SQLException e) {
e.printStackTrace();
}
}
public Student findStudent(String studentID) throws SQLException {
for (Student student : students) {
if (student.getStudentID().equals(studentID)) {
return student;
}
}
ORM<Student> orm = new ORM<>(conn, "student_info");
List<Student> studentList = orm.findByColumn("student_id", studentID);
if (studentList.size() > 0) {
Student student = studentList.get(0);
students.add(student);
return student;
}
return null;
}
public void printAllStudents() {
for (Student student : students) {
System.out.println(student);
}
}
}