11.3总结
package com.dao;
import com.bean.Project;
import com.bean.DBConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
public class ProjectDAOImpl implements ProjectDAO {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 日期格式化工具
@Override
public boolean insertProject(Connection conn, Project project) throws SQLException {
// 1. 定义插入SQL语句(?为占位符,避免SQL注入)
String sql = "INSERT INTO project_info (" +
"project_id, project_name, project_location, project_property, " +
"total_investment, current_investment, investment_2025, construction_content, " +
"start_time, completion_time, report_date, audit_status, audit_opinion) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
// 2. 创建PreparedStatement对象(预编译SQL,提高执行效率和安全性)
PreparedStatement pstmt = conn.prepareStatement(sql);
// 3. 给SQL占位符赋值(按SQL语句中?的顺序,索引从1开始)
pstmt.setString(1, project.getProjectId()); // 项目编号
pstmt.setString(2, project.getProjectName()); // 项目名称
pstmt.setString(3, project.getProjectLocation()); // 项目位置
pstmt.setString(4, project.getProjectProperty()); // 项目属性
pstmt.setInt(5, project.getTotalInvestment()); // 总投资
pstmt.setInt(6, project.getCurrentInvestment()); // 截至目前投资
pstmt.setInt(7, project.getInvestment2025()); // 2025年度投资
pstmt.setString(8, project.getConstructionContent()); // 建设内容
pstmt.setString(9, sdf.format(project.getStartTime())); // 开工时间(Date转String)
pstmt.setString(10, sdf.format(project.getCompletionTime())); // 完工时间
pstmt.setString(11, sdf.format(project.getReportDate())); // 上报日期
pstmt.setInt(12, project.getAuditStatus()); // 审核状态(默认0=未审核)
pstmt.setString(13, project.getAuditOpinion()); // 审核意见(可为null)
// 4. 执行SQL插入操作,返回影响的行数(1=插入成功,0=插入失败)
int rows = pstmt.executeUpdate();
// 5. 关闭PreparedStatement资源(连接由Service层统一关闭)
pstmt.close();
// 6. 返回插入结果(行数>0则成功)
return rows > 0;
}
}

浙公网安备 33010602011771号