JDBC封装
BeanHandler(处理结果集)
/**
* @Author Mrwen
* @Date 2022/3/7 10:40
*/
public class BeanHanlder<E> implements ResultHandler<E>{
//某一个对象
private Class<E> classType;
//给对象classType进行赋值
public BeanHanlder(Class<E> classType){
this.classType = classType;
}
@Override
public E handler(ResultSet rs) {
try {
//获取列数
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
//处理结果集---->遍历每一行数据
while (rs.next()){
//通过反射对象来创建具体的类对象
//每循环一次,就创建一个对象,这个对象就封装这一行的数据
//newInstance ---> 创建对象的方法
E e = classType.newInstance();
for (int i = 1; i <= columnCount; i++) {
//获取列名
String columnName = metaData.getColumnName(i);
//通过列名获取对应的列值
Object value = rs.getObject(columnName);
//通过反射获取对象的属性对象Field类
Field field = classType.getDeclaredField(columnName);
//暴力访问私有属性
field.setAccessible(true);
//Field类对象设置属性值
field.set(e,value);
}
return e;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
BeanListHandler(处理结果集)
/**
* @Author Mrwen
* @Date 2022/3/7 14:44
*/
public class BeanListHandler<E> implements ResultHandler<List<E>>{
//需要通过反射来创建对象
private Class<E> classType