`
H伊方H
  • 浏览: 4565 次
  • 性别: Icon_minigender_1
  • 来自: 揭阳
社区版块
存档分类
最新评论

自己写的将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 }
分享到:
评论

相关推荐

    ResultSet 转为listmap

    为了方便数据处理和使用,我们需要将 ResultSet 转为 List,以便于后续的数据处理和展示。 下面是将 ResultSet 转为 List&lt;Map&gt; 的实现代码: ```java public static List,Object&gt;&gt; ResultSetToList(ResultSet rs) ...

    Blog-Art.-09-Java-ResultSet-To-List:将结果集转换为地图对象列表

    Blog-Art.-09-Java-ResultSet-To-List 将ResultSet转换为Map对象的列表。 JdbcUtil类与静态方法一起使用。 该项目是使用NetBeans 8开发的。 环聊SpringMVC: ://youtu.be/clBK-R8LChM Spring-MYBATIS: ://youtu.be...

    java实现jdbc查询结果集result转换成对应list集合

    然而,由于ResultSet不是Java集合框架的一部分,因此在实际开发中,我们经常需要将其转换为List或其他集合类型以便进行进一步处理。 在提供的代码中,展示了一个简单的转换方法: ```java public static &lt;T&gt; List...

    把数据库查询出来的结果放到excel中进行保存

    这里我们将详细探讨如何实现这个过程,并重点讨论Java编程语言中的实现方法。 首先,我们需要理解数据库查询的基本原理。数据库是存储和管理结构化数据的系统,通过SQL(Structured Query Language)语言我们可以对...

    转换为json数据以及完整的json包

    在本主题中,我们将深入探讨如何将结果集转换为JSON数据以及创建一个完整的JSON包。 1. 结果集转换为JSON数据: 当我们从数据库查询得到结果集(ResultSet)时,通常想要将其转换为JSON格式以便在网络间传输或存储...

    Java中Boolean与字符串或者数字1和0的转换实例

    下面我们将详细介绍Java中Boolean与字符串或者数字1和0的转换实例。 一、Boolean类型与bit类型字段的映射 在Java中,Boolean类型字段可以与数据库中的bit类型字段进行映射。bit类型字段通常用于存储布尔值,只存储...

    java面试试题

    - **JDBC(Java Database Connectivity):** 是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如 Statement、PreparedStatement、ResultSet 等类用于执行 SQL 语句和处理结果集。...

    Via-project:ViaSummerSchools项目

    3. **集合框架**:Java集合框架包括List(如ArrayList、LinkedList)、Set(如HashSet、LinkedHashSet)、Map(如HashMap、TreeMap)等接口和实现类,它们用于存储和管理对象,是数据结构和算法的重要实现。...

Global site tag (gtag.js) - Google Analytics