resultset结果集转换为实体List
来源:互联网 发布:淘宝的奇怪符号 编辑:程序博客网 时间:2024/05/26 02:21
package com.jointsky.automonitor.alarmnotice.noticemanager.utils;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import javax.persistence.Column;import javax.persistence.Entity;import org.apache.commons.beanutils.BeanUtils;/** * <p> * Description:resultset结果集转换为实体List * </p> * <p> * Copyright:Copyright(c) 2016 * </p> * <p> * </p> */public class ResultSetMapper<T> { @SuppressWarnings({ "rawtypes", "unchecked" })public static <T>List<T> mapRersultSetToObject(ResultSet rs, Class outputClass) { List<T> outputList = null; try { // make sure resultset is not null if (rs != null) { // check if outputClass has 'Entity' annotation if (outputClass.isAnnotationPresent(Entity.class)) { // get the resultset metadata ResultSetMetaData rsmd = rs.getMetaData(); // get all the attributes of outputClass Field[] fields = outputClass.getDeclaredFields(); while (rs.next()) { T bean = (T) outputClass.newInstance(); for (int _iterator = 0; _iterator < rsmd .getColumnCount(); _iterator++) { // getting the SQL column name String columnName = rsmd .getColumnName(_iterator + 1); // reading the value of the SQL column Object columnValue = rs.getObject(_iterator + 1); // iterating over outputClass attributes to check if any attribute has 'Column' annotation with matching 'name' value for (Field field : fields) { if (field.isAnnotationPresent(Column.class)) { Column column = field .getAnnotation(Column.class); if (column.name().equalsIgnoreCase( columnName) && columnValue != null) { BeanUtils.setProperty(bean, field .getName(), columnValue); break; } } } } if (outputList == null) { outputList = new ArrayList<T>(); } outputList.add(bean); } } else { // throw some error } } } catch (IllegalAccessException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } if (outputList == null) { outputList = new ArrayList<T>(); } return outputList; }}
//注:实体名上加上@Entity,属性上加上@Column(name="数据库字段名")
0 0
- resultset结果集转换为实体List
- ResultSet结果集转换为实体对象实现方案
- ResultSet结果集转换为实体对象实现方案
- Java中将ResultSet结果集转换为List
- 将ResultSet转换为List
- JDBC中将ResultSet转换为List
- ResultSet转换为List的方法
- 实现JDBC结果集的转换(ResultSet和List的转换)
- 将JDBC ResultSet结果集转成List
- 将ResultSet结果集通过反射转换成对象LIST集合
- jdbc sql 的执行结果resultset 包装为List
- jdbc sql 的执行结果resultset 包装为List
- List<?> 转换为 List<实体类>
- 判断ResultSet结果集是否为空
- 判断ResultSet结果集是否为空
- 判断ResultSet结果集是否为空
- ResultSet结果集为空判断
- ResultSet结果集判断是否为空
- tcp连接状态查询
- 2017面试总结
- spring mvc + spring + hibernate+ html 实现分页功能
- error occurred at recursive SQL level 1
- Netd和framework层的通信,主要解释socket
- resultset结果集转换为实体List
- 微信分享图不显示解决方案
- Android获取/设置WebView的用户代理
- SVN项目名变更,更新代码过期和本地代码文件被删除问题解决
- R语言向量_筛选
- YII2.0框架(一) 请求处理类参考yii\web\Request
- git学习资料整理(知乎搜集的)
- js语法笔记2
- js获取Url,域名,端口号等