来源www.blogjava.net/wanghl259748/articles/277261.html
- public List toList(ResultSet rs,Class cls)
- {
- List list = new ArrayList();
- try
- {
- //获取数据库表结构
- ResultSetMetaData meta=rs.getMetaData();
- Object obj=null;
- while(rs.next())
- {
- //获取formbean实例对象
- obj=Class.forName(cls.getName()).newInstance();
- //循环获取指定行的每一列的信息
- for(int i=1;i<=meta.getColumnCount();i++)
- {
- //当前列名
- String colName=meta.getColumnName(i);
- //将列名第一个字母大写(为什么加+""呢?为了把char类型转换为String类型。replace的参数是String类型。)
- colName=colName.replace(colName.charAt(0)+"", new String(colName.charAt(0)+"").toUpperCase());
- //设置方法名
- String methodName="set"+colName;
- //获取当前位置的值,返回Object类型
- Object value=rs.getObject(i);
- //利用反射机制,生成setXX()方法的Method对象并执行该setXX()方法。
- Method method=obj.getClass().getMethod(methodName, value.getClass());
- method.invoke(obj, value);
- }
- list.add(obj);
- }
- }catch(Exception ex)
- {
- ex.printStackTrace();
- }finally{
- return list;
- }
- }
出于对反射机制的兴趣收藏此代码,觉得以后肯定能用到!