HHzoog

posts(0) comments(0) trackbacks(0)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

文章档案

  • 2012年4月 (1)

搜索

  •  

最新评论

View Post

自己写的一个将ResultSet数据集转化为List对象的方法
  1 import java.lang.reflect.InvocationTargetException;
  2 import java.lang.reflect.Method;
  3 import java.sql.ResultSet;
  4 import java.sql.ResultSetMetaData;
  5 import java.sql.SQLException;
  6 import java.util.ArrayList;
  7 import java.util.List;
  8 
  9 /**
 10  * 将ResultSet对象转换为List<Object>
 11  * @author HHZ
 12  */
 13 public class ResultSetToObject
 14 {
 15     public static List<Object> turnToObject(ResultSet resultSet,
 16             Class<?> objClass)
 17     {
 18         /**存储转化后的实体类*/
 19         List<Object> listObjs = new ArrayList<Object>();
 20         
 21         /**resultSet数据表中的字段名称*/
 22         String[] columnNames = null;
 23         
 24         /**resultSet数据表中对应字段的数据类型*/
 25         String[] columnTypes = null;
 26         
 27         try
 28         {
 29             if (resultSet == null || !resultSet.next())
 30             {
 31                 return listObjs;
 32             } else
 33             {
 34                 ResultSetMetaData metaResult = resultSet.getMetaData();
 35                 int length = metaResult.getColumnCount();
 36                 columnNames = new String[length];
 37                 columnTypes = new String[length];
 38 
 39                 for (int i = 0; i < columnNames.length; i++)
 40                 {
 41                     columnNames[i] = metaResult.getColumnName(i + 1);
 42                     columnTypes[i] = metaResult.getColumnClassName(i + 1);
 43                 }
 44 
 45                 while (resultSet.next())
 46                 {
 47                     try
 48                     {
 49                         /*实例化实体类*/
 50                         Object obj = objClass.newInstance();
 51 
 52                         /*根据字段名调用实体类中的set方法*/
 53                         for (int j = 0; j < columnNames.length; j++)
 54                         {
 55                             Method method = objClass.getDeclaredMethod("set"
 56                                     + upInitial(columnNames[j]),
 57                                     paraTypeClass(columnTypes[j]));
 58                             method.invoke(obj, resultSet
 59                                     .getObject(columnNames[j]));
 60                         }
 61                         
 62                         listObjs.add(obj);
 63                         
 64                     } catch (InstantiationException e)
 65                     {
 66                         e.printStackTrace();
 67                     } catch (IllegalAccessException e)
 68                     {
 69                         e.printStackTrace();
 70                     } catch (SecurityException e)
 71                     {
 72                         e.printStackTrace();
 73                     } catch (NoSuchMethodException e)
 74                     {
 75                         e.printStackTrace();
 76                     } catch (IllegalArgumentException e)
 77                     {
 78                         e.printStackTrace();
 79                     } catch (InvocationTargetException e)
 80                     {
 81                         e.printStackTrace();
 82                     }
 83                 }
 84             }
 85 
 86         } catch (SQLException e)
 87         {
 88             e.printStackTrace();
 89         }
 90         return listObjs;
 91     }
 92 
 93     /**
 94      * 将首字母变为大写
 95      * @param str
 96      * @return
 97      */
 98     public static String upInitial(String str)
 99     {
100         char[] chars = str.toCharArray();
101         chars[0] = Character.toUpperCase(chars[0]);
102         return new String(chars);
103     }
104     
105     /**
106      * 字段的数据类型
107      * @param str
108      * @return
109      */
110     public static Class<?> paraTypeClass(String str)
111     {
112         if(str.equals("java.lang.String"))
113         {
114             return java.lang.String.class;
115         }else if(str.equals("java.lang.Integer"))
116         {
117             return java.lang.Integer.class;
118         }else if(str.equals("java.lang.Character"))
119         {
120             return java.lang.Character.class;
121         }else if(str.equals("java.lang.Double"))
122         {
123             return java.lang.Double.class;
124         }else if(str.equals("java.lang.Short"))
125         {
126             return java.lang.Short.class;
127         }else if(str.equals("java.lang.Byte"))
128         {
129             return java.lang.Byte.class;
130         }else if(str.equals("java.lang.Float"))
131         {
132             return java.lang.Float.class;
133         }else if(str.equals("java.lang.Boolean"))
134         {
135             return java.lang.Boolean.class;
136         }else if(str.equals("java.util.Date"))
137         {
138             return java.util.Date.class;
139         }
140         return null;
141     }
142 }

posted on 2012-04-21 17:30 HonSir 阅读(360) 评论(0)  编辑  收藏

新用户注册  刷新评论列表  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问   管理
 
 
Powered by:
BlogJava
Copyright © HonSir