未改进的结果集处理器

未改进的结果集处理器,每次新创建一个对象就要重新写一个结果集

StudentDaoImpl.java

class StuResultHandlerImpl implements IResultSetHandler<List<Student>> {
	
	@Override	
	public List<Student> handler(ResultSet res) throws Exception {
		// 创建集合
		List<Student> list = new ArrayList<>();
		while (res.next()) {
			Student stu = new Student();
			stu.setId(res.getInt("id"));
			stu.setName(res.getString("name"));
			list.add(stu);
		}
		return list;
	}
}

定义接口:

//定义范型,不确定传入的类型
public interface IResultSetHandler<T> {
    T handler(ResultSet res) throws Exception;
}

CRUDTemplate.java摸板类

public static <T>T executeQuery(String sql,IResultSetHandler<T> rh,Object...params){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet res = null;
		
		try{
			//1.加载驱动
			//2.连接
			conn = JDBCUtil.getConnection();
			//3.创建SQL
			ps = conn.prepareStatement(sql);
			//4.遍历参数
			for (int i = 0; i < params.length; i++) {
				ps.setObject(i+1, params[i]);
			}
			//5.执行SQL
			res = ps.executeQuery();
			return rh.handler(res);
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			//6.释放资源
			JDBCUtil.close(conn, ps, res);	
		}
		return null;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值