为了能到远方,脚下的每一步都不能少.|

七分之一月

园龄:8个月粉丝:2关注:0

学习Dao类中数据库操作方法,练习编写类似的数据库操作方法

  1. 数据库表结构设计
    首先,假设我们有一个名为 health_plans 的表,用于存储老年人的健康评估计划,其表结构如下:
    CREATE TABLE health_plans ( plan_id INT AUTO_INCREMENT PRIMARY KEY, elder_id INT NOT NULL, -- 老年人的 ID plan_name VARCHAR(255) NOT NULL, -- 计划名称 plan_description TEXT, -- 计划描述 start_date DATE, -- 计划开始日期 end_date DATE -- 计划结束日期 );
  2. 定义 Dao 类
    以下是一个 PlanDao 类的示例,包含了常见的计划相关数据库操作方法:
    `import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;

// PlanDao 类用于处理与健康评估计划相关的数据库操作
public class PlanDao {
// 数据库连接信息
private static final String URL = "jdbc:mysql://localhost:3306/your_database_name";
private static final String USER = "your_username";
private static final String PASSWORD = "your_password";

// 获取数据库连接
private Connection getConnection() throws SQLException {
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return DriverManager.getConnection(URL, USER, PASSWORD);
}

// 添加新的健康评估计划
public boolean addPlan(int elderId, String planName, String planDescription, String startDate, String endDate) {
    String sql = "INSERT INTO health_plans (elder_id, plan_name, plan_description, start_date, end_date) VALUES (?,?,?,?,?)";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setInt(1, elderId);
        pstmt.setString(2, planName);
        pstmt.setString(3, planDescription);
        pstmt.setString(4, startDate);
        pstmt.setString(5, endDate);
        int rows = pstmt.executeUpdate();
        return rows > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 根据计划 ID 删除健康评估计划
public boolean deletePlan(int planId) {
    String sql = "DELETE FROM health_plans WHERE plan_id = ?";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setInt(1, planId);
        int rows = pstmt.executeUpdate();
        return rows > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 根据计划 ID 更新健康评估计划信息
public boolean updatePlan(int planId, int elderId, String planName, String planDescription, String startDate, String endDate) {
    String sql = "UPDATE health_plans SET elder_id = ?, plan_name = ?, plan_description = ?, start_date = ?, end_date = ? WHERE plan_id = ?";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setInt(1, elderId);
        pstmt.setString(2, planName);
        pstmt.setString(3, planDescription);
        pstmt.setString(4, startDate);
        pstmt.setString(5, endDate);
        pstmt.setInt(6, planId);
        int rows = pstmt.executeUpdate();
        return rows > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 根据计划 ID 查询健康评估计划
public Plan getPlanById(int planId) {
    String sql = "SELECT * FROM health_plans WHERE plan_id = ?";
    try (Connection conn = getConnection();
         PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setInt(1, planId);
        ResultSet rs = pstmt.executeQuery();
        if (rs.next()) {
            int elderId = rs.getInt("elder_id");
            String planName = rs.getString("plan_name");
            String planDescription = rs.getString("plan_description");
            String startDate = rs.getString("start_date");
            String endDate = rs.getString("end_date");
            return new Plan(planId, elderId, planName, planDescription, startDate, endDate);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

// 查询所有健康评估计划
public List<Plan> getAllPlans() {
    List<Plan> plans = new ArrayList<>();
    String sql = "SELECT * FROM health_plans";
    try (Connection conn = getConnection();
         Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery(sql)) {
        while (rs.next()) {
            int planId = rs.getInt("plan_id");
            int elderId = rs.getInt("elder_id");
            String planName = rs.getString("plan_name");
            String planDescription = rs.getString("plan_description");
            String startDate = rs.getString("start_date");
            String endDate = rs.getString("end_date");
            plans.add(new Plan(planId, elderId, planName, planDescription, startDate, endDate));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return plans;
}

}

// 定义 Plan 类,用于封装健康评估计划的信息
class Plan {
private int planId;
private int elderId;
private String planName;
private String planDescription;
private String startDate;
private String endDate;

public Plan(int planId, int elderId, String planName, String planDescription, String startDate, String endDate) {
    this.planId = planId;
    this.elderId = elderId;
    this.planName = planName;
    this.planDescription = planDescription;
    this.startDate = startDate;
    this.endDate = endDate;
}

// 省略 getter 和 setter 方法

}`

本文作者:zyh-828

本文链接:https://www.cnblogs.com/zyh-828/p/18724287/2025-1-17

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   七分之一月  阅读(2)  评论(0编辑  收藏  举报
//雪花飘落效果
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起