学生信息管理系统java
时间: 2023-10-13 15:05:03 浏览: 74
学生信息管理系统是一个常见的练手项目,下面是一个简单的Java实现:
1. 数据库设计
首先,我们需要设计一个数据库来存储学生信息。这里我们假设每个学生有以下属性:学号、姓名、年龄、性别、电话号码、住址。
我们可以创建一个名为“students”的表,包含以下字段:
- id: 学号,主键
- name: 姓名
- age: 年龄
- gender: 性别
- phone: 电话号码
- address: 住址
2. Java实现
接下来,我们使用Java来实现一个简单的学生信息管理系统。我们将使用JDBC来连接数据库并执行SQL查询。
首先,我们需要创建一个Student类来表示每个学生:
```
public class Student {
private String id;
private String name;
private int age;
private String gender;
private String phone;
private String address;
public Student(String id, String name, int age, String gender, String phone, String address) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
this.address = address;
}
// Getters and setters
}
```
然后,我们需要创建一个Database类来连接数据库和执行SQL查询:
```
import java.sql.*;
public class Database {
private Connection conn;
public Database(String url, String username, String password) throws SQLException {
conn = DriverManager.getConnection(url, username, password);
}
public void close() throws SQLException {
if (conn != null) {
conn.close();
}
}
public Student getStudent(String id) throws SQLException {
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM students WHERE id = ?");
stmt.setString(1, id);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
String phone = rs.getString("phone");
String address = rs.getString("address");
return new Student(id, name, age, gender, phone, address);
} else {
return null;
}
}
public void addStudent(Student student) throws SQLException {
PreparedStatement stmt = conn.prepareStatement("INSERT INTO students (id, name, age, gender, phone, address) VALUES (?, ?, ?, ?, ?, ?)");
stmt.setString(1, student.getId());
stmt.setString(2, student.getName());
stmt.setInt(3, student.getAge());
stmt.setString(4, student.getGender());
stmt.setString(5, student.getPhone());
stmt.setString(6, student.getAddress());
stmt.executeUpdate();
}
public void updateStudent(Student student) throws SQLException {
PreparedStatement stmt = conn.prepareStatement("UPDATE students SET name = ?, age = ?, gender = ?, phone = ?, address = ? WHERE id = ?");
stmt.setString(1, student.getName());
stmt.setInt(2, student.getAge());
stmt.setString(3, student.getGender());
stmt.setString(4, student.getPhone());
stmt.setString(5, student.getAddress());
stmt.setString(6, student.getId());
stmt.executeUpdate();
}
public void deleteStudent(String id) throws SQLException {
PreparedStatement stmt = conn.prepareStatement("DELETE FROM students WHERE id = ?");
stmt.setString(1, id);
stmt.executeUpdate();
}
}
```
这个类包含了一些常见的数据库操作,如查询、添加、更新和删除学生信息。
最后,我们可以创建一个简单的命令行界面来与用户交互:
```
import java.sql.SQLException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Connect to the database
try {
Database db = new Database("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
while (true) {
System.out.println("1. Add student");
System.out.println("2. Update student");
System.out.println("3. Delete student");
System.out.println("4. Get student");
System.out.println("5. Exit");
System.out.print("Enter choice: ");
int choice = scanner.nextInt();
if (choice == 1) {
System.out.print("Enter id: ");
String id = scanner.next();
System.out.print("Enter name: ");
String name = scanner.next();
System.out.print("Enter age: ");
int age = scanner.nextInt();
System.out.print("Enter gender: ");
String gender = scanner.next();
System.out.print("Enter phone: ");
String phone = scanner.next();
System.out.print("Enter address: ");
String address = scanner.next();
Student student = new Student(id, name, age, gender, phone, address);
db.addStudent(student);
} else if (choice == 2) {
System.out.print("Enter id: ");
String id = scanner.next();
System.out.print("Enter name: ");
String name = scanner.next();
System.out.print("Enter age: ");
int age = scanner.nextInt();
System.out.print("Enter gender: ");
String gender = scanner.next();
System.out.print("Enter phone: ");
String phone = scanner.next();
System.out.print("Enter address: ");
String address = scanner.next();
Student student = new Student(id, name, age, gender, phone, address);
db.updateStudent(student);
} else if (choice == 3) {
System.out.print("Enter id: ");
String id = scanner.next();
db.deleteStudent(id);
} else if (choice == 4) {
System.out.print("Enter id: ");
String id = scanner.next();
Student student = db.getStudent(id);
if (student != null) {
System.out.println("Name: " + student.getName());
System.out.println("Age: " + student.getAge());
System.out.println("Gender: " + student.getGender());
System.out.println("Phone: " + student.getPhone());
System.out.println("Address: " + student.getAddress());
} else {
System.out.println("Student not found");
}
} else if (choice == 5) {
break;
} else {
System.out.println("Invalid choice");
}
System.out.println();
}
db.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
这个界面允许用户添加、更新、删除和查询学生信息。注意,这里我们使用了硬编码的数据库连接信息,你需要根据自己的环境进行修改。
这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。