您现在的位置是:主页 > news > 个人备案网站做企业网可以吗/360收录
个人备案网站做企业网可以吗/360收录
admin2025/6/16 5:20:19【news】
简介个人备案网站做企业网可以吗,360收录,成立公司注册资本什么意思,专门做赌博网站犯法吗1、原理:反射内省 2、反射:动态创建对象 3、内省:动态处理对象的属性值 4、结果集处理: (1)把结果集中的一行数据,封装成一个对象,专门针对结果集中只有一行数据的情况。 &#…
个人备案网站做企业网可以吗,360收录,成立公司注册资本什么意思,专门做赌博网站犯法吗1、原理:反射内省
2、反射:动态创建对象
3、内省:动态处理对象的属性值 4、结果集处理:
(1)把结果集中的一行数据,封装成一个对象,专门针对结果集中只有一行数据的情况。
&#…
1、原理:反射+内省
2、反射:动态创建对象
3、内省:动态处理对象的属性值
4、结果集处理:
(1)把结果集中的一行数据,封装成一个对象,专门针对结果集中只有一行数据的情况。
(2)处理结果集–多行数据,封装成多个对象(list)
✿ 专门针对结果集中只有一行数据的情况(把结果集中的一行数据,封装成一个对象) BeanHandler
public class BeanHandler<T> implements IResultHandler2<T> {private Class<T> classType; //因为需要把结果集的一行封装成一个对象【❀ 则需要有对象的存在】,通过反射技术,动态编译是才传入具体类型的对象public BeanHandler(Class<T> classType) { //通过构造器,传入具体的类型的,以便后边通过反射获取到对应类型的具体对象this.classType = classType;}@Overridepublic T handle(ResultSet rs) throws Exception {//1、创建对应的类的一个对象T obj = classType.newInstance();//2、取出结果集中当前光标所在行的某一列的数据BeanInfo beanInfo = Introspector.getBeanInfo(classType, Object.class);PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();if(rs.next()) {for(PropertyDescriptor pd : pds) {//获取对象的属性名【属性名和列名相同】String columnName = pd.getName();Object val = rs.getObject(columnName);//3、调用该对象的setter方法,把某一列的数据设置进去pd.getWriteMethod().invoke(obj, val);}}return obj;}
}
✿ 针对结果集中多行数据的情况(把结果集中的每一行数据,封装成一个对象) BeanHandler
public class BeanListHandler<T> implements IResultHandler2<List<T>> {//利用反射技术,先拥有类private Class<T> classType;public BeanListHandler(Class<T> classType) {this.classType = classType;}@Overridepublic List<T> handle(ResultSet rs) throws Exception {List<T> list = new ArrayList<>();while(rs.next()) {T obj = classType.newInstance();BeanInfo benInfo = Introspector.getBeanInfo(classType, Object.class);PropertyDescriptor[] pds = benInfo.getPropertyDescriptors();for(PropertyDescriptor pd : pds) {String columnName = pd.getName();Object value = rs.getObject(columnName);//设置对象属性值pd.getWriteMethod().invoke(obj, value);}list.add(obj);}return list;}}