package cn.lnu.utils; import java.lang.reflect.Field; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.ArrayList; import java.util.List; //�������ÿһ����¼�����ȴ���һ��bean�У�Ȼ���ڽ����bean�ӵ�һ��List�����У���ʵ�ֿ������߱�¶��handler�ӿڴ����� public class BeanListHandler implements ResultSetHandler{ private Class clazz; public BeanListHandler(Class clazz){//����Ҫ�������ÿһ�м�¼��װ���ĸ���Ķ����е�������������û�ʹ�������������ʱ�򣬾Ͳ���Ҫ����ǰ������new��һ�������ڴ��ݹ���������ֱ�Ӵ��ݹ���һ���� this.clazz=clazz; } public Object handler(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Object bean=clazz.newInstance();//ÿȡ��һ����¼��new��һ�������bean���� ResultSetMetaData meta=rs.getMetaData(); int count=meta.getColumnCount(); for(int i=0;i<count;i++){ String name=meta.getColumnName(i+1);//ÿ��ȡ�������ÿһ�е����� Object value=rs.getObject(name); //���䣬ͨ��ÿ��ȡ�������������bean�����϶�Ӧ������ Field f=bean.getClass().getDeclaredField(name); f.setAccessible(true);//ǿ�����ø�����Ϊ���з������ԣ��򿪸����Եķ���Ȩ�ޣ�����������Ͽ��Ա���ֵ f.set(bean, value);//�������ÿ�е�ֵ��ֵ��bean�����Ӧ������ } list.add(bean);//��ÿ�η������bean��ӵ�һ��list������ } return list; } catch (Exception e) { throw new RuntimeException(e); } } }