通过反射从数据库返回集合ResultSet中得到实体对象的list集合
来源:互联网 发布:windows 9 编辑:程序博客网 时间:2024/06/09 16:14
import java.lang.reflect.Field;import java.lang.reflect.Method;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;/** * @author zhangdapeng * @version 1.0 * @since 1.0 */public class DBResultSetReflectionUtil {public static List obtainEntityObject(ResultSet rs, Class cls) throws Exception {List list = new ArrayList<>();Field[] fields = cls.getDeclaredFields();while (rs.next()) {Object obj = newInstance(cls);for (int i = 0; i < fields.length; i++) {Class<?> type = fields[i].getType();String fieldName = fields[i].getName();if (type.getName().equals(String.class.getName())) {String value = rs.getString(fields[i].getName());setProperty(obj, fieldName, value);}}list.add(obj);}return list;}private static Object newInstance(Class<?> cls) throws Exception {return cls.newInstance();}private static void setProperty(Object obj, String name, Object value) throws Exception {Class<? extends Object> clazz = obj.getClass();String methodName = returnSetMethodName(name);Method[] ms = clazz.getMethods();for (Method m : ms) {if (m.getName().equals(methodName)) {if (m.getParameterTypes().length == 1) {Class<?> clazzParameterType = m.getParameterTypes()[0];setFieldValue(clazzParameterType.getName(), value, m, obj);break;}}}}private static void setFieldValue(String parameterTypeName, Object value, Method m, Object obj) throws Exception {if (parameterTypeName.equals(int.class.getName())) {value = new Integer(Integer.parseInt(value.toString()));m.invoke(obj, value);return;}if (parameterTypeName.equals(String.class.getName())) {m.invoke(obj, value);return;}}private static String returnSetMethodName(String name) {name = name.substring(0, 1).toUpperCase() + name.substring(1, name.length());return "set" + name;}}
参考:
http://blog.csdn.net/philosophyatmath/article/details/40710627
0 0
- 通过反射从数据库返回集合ResultSet中得到实体对象的list集合
- jdbc查询数据库返回实体对象集合
- 将ResultSet结果集通过反射转换成对象LIST集合
- 如何从List集合中删除对象
- 如何从List集合中删除对象
- 如何从List集合中删除对象
- 使用NamedParameterJdbcTemplate 通过BeanPropertyRowMapper 返回一个对象或List 集合
- 通过jdbcTemplate如何返回自定义的对象集合,以及在java中如何遍历这个集合
- Java List、Set去重实体对象类型的集合
- 通过反射填充泛型集合List的静态方法
- 通过反射填充泛型集合List的静态方法
- 利用Lambda表达式从实体集合中筛选出符合条件的实体集合
- javascript中遍历对象的List集合
- 使用sax解析xml文件,并自动根据实体类class得到映射后的实体类list集合
- 通过反射获取实体集合属性值并赋值给另一个实体集合
- 通过反射获取实体集合属性值并赋值给另一个实体集合
- 通过java的反射从list中取出对象从而取出属性值
- hibernate通过query查询返回实体集合相关注意事项
- 社交招聘网络Linkedin的使用体验(HR招聘篇9)
- java正则表达式实例积累
- NSString去空格和换行
- IOS TextField设置大全
- 社交招聘网络Linkedin的使用体验(HR招聘篇10)
- 通过反射从数据库返回集合ResultSet中得到实体对象的list集合
- [python snippets] 邮件发送 (带附件,多收件人, 支持SMTP 和Postfix )
- 敏捷测试过程的度量标准---请记住,把度量作为一种激励的手段而不是打击士气的方式
- 不是技术牛人,如何拿到国内IT巨头的Offer
- nutch v1.9源码分析(3)——nutch基本爬取流程
- 正则表达式基本语法
- hdu1003 最大连续子序列和
- C语言学习入门 (七) 结构体和枚举
- sobel算子(转)