Java项目实例
简介
本文将介绍一个简单的Java项目实例,用于展示如何使用Java编写一个基本的学生信息管理系统。该系统可以实现学生信息的添加、查询、修改和删除功能,并使用MySQL数据库进行数据的持久化存储。通过本文的实例,读者可以了解到如何使用Java语言进行项目开发,并掌握基本的数据库操作技巧。
前提条件
在开始之前,请确保你已经具备以下条件:
- Java开发环境已经安装并配置好。
- Eclipse或者IntelliJ IDEA等Java开发工具已经安装并配置好。
- MySQL数据库已经安装并配置好。
项目架构
首先,让我们来看一下该项目的架构图:
erDiagram
STUDENT ||--o{ COURSE : has
STUDENT {
String studentId
String name
String email
}
COURSE {
String courseId
String name
int credit
}
如上图所示,该项目包含两个主要的实体类:Student
和Course
。每个学生可以选择多门课程,因此学生实体类包含一个Course
列表。
数据库表设计
根据上述架构图,我们可以设计出相应的数据库表结构。下面是student
和course
表的DDL(数据定义语言):
CREATE TABLE student (
student_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(100)
);
CREATE TABLE course (
course_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
credit INT
);
项目代码实现
1. 数据库连接工具类
首先,我们需要创建一个数据库连接工具类,用于连接MySQL数据库。下面是该类的代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/mydb";
private static final String USERNAME = "root";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
}
2. 学生实体类
接下来,我们需要创建一个Student
类来表示学生实体。下面是该类的代码示例:
public class Student {
private int studentId;
private String name;
private String email;
private List<Course> courses;
// 省略getter和setter方法
}
3. 课程实体类
类似地,我们需要创建一个Course
类来表示课程实体。下面是该类的代码示例:
public class Course {
private int courseId;
private String name;
private int credit;
// 省略getter和setter方法
}
4. 学生管理类
然后,我们需要创建一个StudentManager
类,用于实现学生信息的添加、查询、修改和删除功能。下面是该类的代码示例:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class StudentManager {
public void addStudent(Student student) {
try (Connection conn = DBUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("INSERT INTO student (name, email) VALUES (?, ?)")) {
stmt.setString(1, student.getName());
stmt.setString(2, student.getEmail());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Student getStudent(int studentId) {
try (Connection conn = DBUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM student WHERE student_id = ?")) {
stmt.setInt(1, studentId);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
Student student = new Student();
student.setStudentId(rs.getInt("student_id"));
student.setName(rs.getString("name"));
student.setEmail(rs.getString("email"));
return student;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// 省略updateStudent和deleteStudent方法
}
5. 主函数
最后,我们需要编写一个主函数来测试上述功能。下面是主函数的代码示例:
public class Main {
public static void main(String[] args) {
StudentManager studentManager = new StudentManager();
// 添加学生
Student