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 转为 List,以便于后续的数据处理和展示。 下面是将 ResultSet 转为 List<Map> 的实现代码: ```java public static List,Object>> ResultSetToList(ResultSet rs) ...
Blog-Art.-09-Java-ResultSet-To-List 将ResultSet转换为Map对象的列表。 JdbcUtil类与静态方法一起使用。 该项目是使用NetBeans 8开发的。 环聊SpringMVC: ://youtu.be/clBK-R8LChM Spring-MYBATIS: ://youtu.be...
然而,由于ResultSet不是Java集合框架的一部分,因此在实际开发中,我们经常需要将其转换为List或其他集合类型以便进行进一步处理。 在提供的代码中,展示了一个简单的转换方法: ```java public static <T> List...
这里我们将详细探讨如何实现这个过程,并重点讨论Java编程语言中的实现方法。 首先,我们需要理解数据库查询的基本原理。数据库是存储和管理结构化数据的系统,通过SQL(Structured Query Language)语言我们可以对...
在本主题中,我们将深入探讨如何将结果集转换为JSON数据以及创建一个完整的JSON包。 1. 结果集转换为JSON数据: 当我们从数据库查询得到结果集(ResultSet)时,通常想要将其转换为JSON格式以便在网络间传输或存储...
下面我们将详细介绍Java中Boolean与字符串或者数字1和0的转换实例。 一、Boolean类型与bit类型字段的映射 在Java中,Boolean类型字段可以与数据库中的bit类型字段进行映射。bit类型字段通常用于存储布尔值,只存储...
- **JDBC(Java Database Connectivity):** 是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如 Statement、PreparedStatement、ResultSet 等类用于执行 SQL 语句和处理结果集。...
3. **集合框架**:Java集合框架包括List(如ArrayList、LinkedList)、Set(如HashSet、LinkedHashSet)、Map(如HashMap、TreeMap)等接口和实现类,它们用于存储和管理对象,是数据结构和算法的重要实现。...