学习Dao类中数据库操作方法,练习编写类似的数据库操作方法
- 数据库表结构设计
首先,假设我们有一个名为 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 -- 计划结束日期 );
- 定义 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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步