JavaSE实战Demo实现指南

简介

本文将指导你如何实现一个JavaSE实战Demo。在这个Demo中,我们将创建一个简单的学生管理系统,实现学生的增删改查功能。

整体流程

下面是整个项目的流程图,通过这个流程图,你可以清晰地了解到项目的整体框架和每个步骤之间的关系。

graph TD;
  A(开始)-->B(创建项目)-->C(创建数据库表)-->D(实现数据访问层)-->E(实现业务逻辑层)-->F(实现展示层)-->G(完成)
  C-->D;
  D-->E;
  E-->F;
  F-->G;

详细步骤

步骤1:创建项目

在开始之前,首先需要创建一个新的Java项目。你可以使用任何你熟悉的IDE,如Eclipse或IntelliJ IDEA。

步骤2:创建数据库表

在这个Demo中,我们将使用MySQL数据库存储学生信息。首先,你需要创建一个名为"student"的数据库和一个名为"students"的数据表。

CREATE DATABASE student;

USE student;

CREATE TABLE students (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  age INT,
  gender VARCHAR(10)
);

步骤3:实现数据访问层

数据访问层(Data Access Layer,简称DAO)负责与数据库进行交互,包括增删改查等操作。在这一步中,我们将实现一个名为"StudentDAO"的类,并在其中实现这些操作。

public class StudentDAO {
  private Connection connection;

  // 构造函数,用于初始化数据库连接
  public StudentDAO() {
    String url = "jdbc:mysql://localhost:3306/student";
    String username = "your-username";
    String password = "your-password";

    try {
      connection = DriverManager.getConnection(url, 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()) {
        int id = resultSet.getInt("id");
        String name = resultSet.getString("name");
        int age = resultSet.getInt("age");
        String gender = resultSet.getString("gender");

        students.add(new Student(id, name, age, gender));
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }

    return students;
  }

  // 添加学生信息
  public void addStudent(Student student) {
    String sql = "INSERT INTO students (name, age, gender) VALUES (?, ?, ?)";

    try {
      PreparedStatement statement = connection.prepareStatement(sql);
      statement.setString(1, student.getName());
      statement.setInt(2, student.getAge());
      statement.setString(3, student.getGender());

      statement.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  // 更新学生信息
  public void updateStudent(Student student) {
    String sql = "UPDATE students SET name = ?, age = ?, gender = ? WHERE id = ?";

    try {
      PreparedStatement statement = connection.prepareStatement(sql);
      statement.setString(1, student.getName());
      statement.setInt(2, student.getAge());
      statement.setString(3, student.getGender());
      statement.setInt(4, student.getId());

      statement.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

  // 删除学生信息
  public void deleteStudent(int id) {
    String sql = "DELETE FROM students WHERE id = ?";

    try {
      PreparedStatement statement = connection.prepareStatement(sql);
      statement.setInt(1, id);

      statement.executeUpdate();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

步骤4:实现业务逻辑层

业务逻辑层(Business Logic Layer,简称BLL)负责处理业务逻辑,例如对学生信息的验证和处理。在这一步中,我们将实现一个名为"StudentService"的类,并在其中实现这些业务逻辑。

public class StudentService {
  private StudentDAO studentDAO;

  // 构造函数,用于初始化数据访问层
  public StudentService() {
    studentDAO = new StudentDAO();
  }

  // 获取所有学生信息
  public List<Student> getAllStudents() {
    return studentDAO.getAllStudents();
  }