(2)状态数据访问接口实现类
例:状态数据访问接口实现类StatusDaoImpl等等
package net.ys.student.dao.impl;
import net.ys.student.bean.Status;
import net.ys.student.dao.StatusDao;
import net.ys.student.dbutil.ConnectionManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
-
功能:状态数据访问接口实现类
-
作者:严胜
-
日期:2019年6月19日
*/
public class StatusDaoImpl implements StatusDao {@Override
public Status findById(int id) {
// 声明状态对象
Status status = null;// 1. 获取数据库连接对象 Connection conn = ConnectionManager.getConnection(); // 2. 定义SQL字符串 String strSQL = "SELECT * FROM t_status WHERE id = ?"; try { // 3. 创建预备语句对象 PreparedStatement pstmt = conn.prepareStatement(strSQL); // 4. 设置占位符的值 pstmt.setInt(1, id); // 5. 执行SQL查询,返回结果集 ResultSet rs = pstmt.executeQuery(); // 6. 判断结果集是否有记录 if (rs.next()) { // 实例化状态 status = new Status(); // 利用当前记录字段值去设置状态对象的属性 status.setId(rs.getInt("id")); status.setCollege(rs.getString("college")); status.setVersion(rs.getString("version")); status.setAuthor(rs.getString("author")); status.setTelephone(rs.getString("telephone")); status.setAddress(rs.getString("address")); status.setEmail(rs.getString("email")); } // 7. 关闭预备语句对象 pstmt.close(); // 8. 关闭结果集对象 rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 ConnectionManager.closeConnection(conn); } // 返回状态对象 return status;
}
@Override
public int update(Status status) {
// 定义更新记录数
int count = 0;// 1. 获得数据库连接 Connection conn = ConnectionManager.getConnection(); // 2. 定义SQL字符串 String strSQL = "UPDATE t_status SET college = ?, version = ?, author = ?," + " telephone = ?, address = ?, email = ? WHERE id = ?"; try { // 3. 创建预备语句对象 PreparedStatement pstmt = conn.prepareStatement(strSQL); // 4. 设置占位符的值 pstmt.setString(1, status.getCollege()); pstmt.setString(2, status.getVersion()); pstmt.setString(3, status.getAuthor()); pstmt.setString(4, status.getTelephone()); pstmt.setString(5, status.getAddress()); pstmt.setString(6, status.getEmail()); pstmt.setInt(7, status.getId()); // 5. 执行更新操作,更新记录 count = pstmt.executeUpdate(); // 6. 关闭预备语句对象 pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 ConnectionManager.closeConnection(conn); } // 返回更新记录数 return count;
}
}