原生resultSet转bean
Posted 站在西瓜上的猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生resultSet转bean相关的知识,希望对你有一定的参考价值。
1 package luowuhui.utils; 2 3 import java.lang.reflect.Field; 4 import java.lang.reflect.Method; 5 import java.sql.ResultSet; 6 import java.util.ArrayList; 7 import java.util.List; 8 9 public class CreateBean { 10 11 /** 12 * @return 13 * @see 返回单个实体对象 14 */ 15 public static <T> T getBean(Class<T> calss, ResultSet resultSet) { 16 // TODO Auto-generated method stub 17 // 创建对象 18 T object = null; 19 try { 20 object = createBean(calss, resultSet); 21 22 } catch (Exception e) { 23 System.out.println("执行CreateBeanImp类getBean方法出现异常"); 24 System.out.println("=================异常报告================="); 25 e.printStackTrace(); 26 System.out.println("=================end================="); 27 } 28 29 return object; 30 } 31 32 /** 33 * @see 返回实体对象集 34 */ 35 public static <T> List<T> getBeans(Class<T> calss, ResultSet resultSet) { 36 List<T> ts = null; 37 try { 38 ts = new ArrayList<>(); 39 int i = 0; 40 while (resultSet.next()) { 41 System.out.println(++i); 42 ts.add(createBean(calss, resultSet)); 43 } 44 } catch (Exception e) { 45 System.out.println("执行CreateBeanImp类getBean方法出现异常"); 46 System.out.println("=================异常报告================="); 47 e.printStackTrace(); 48 System.out.println("=================end================="); 49 } 50 return ts; 51 } 52 53 /** 54 * @说明 创建实体 55 * @param calss 56 * @param resultSet 57 * @return 实体对象 58 * @throws Exception 59 * <p> 60 * 创建对象时错误,69行<br> 61 * 获取resultSet值错误81行 62 * </p> 63 */ 64 private static <T> T createBean(Class<T> calss, ResultSet resultSet) throws Exception { 65 T object = calss.newInstance(); 66 // 获取字段 67 Field[] fields = calss.getDeclaredFields(); 68 69 // 遍历fields 70 for (Field field : fields) { 71 // 获取字段名 72 String fieldName = field.getName(); 73 if (!fieldName.equalsIgnoreCase("serialVersionUID")) { 74 // 获取方法名 75 String setMethodName = "set" + (char) (fieldName.charAt(0) - 32) + fieldName.substring(1); 76 // 获取field类型 77 Class type = field.getType(); 78 79 Method method = calss.getDeclaredMethod(setMethodName, type); 80 Object fieldVlaue = resultSet.getObject(fieldName); 81 // System.out.println(setMethodName + ":" + fieldVlaue); 82 method.invoke(object, fieldVlaue); 83 } 84 85 } 86 // System.out.println(); 87 // System.out.println(object); 88 return object; 89 } 90 }
以上是关于原生resultSet转bean的主要内容,如果未能解决你的问题,请参考以下文章
怎样用JPA的EntityManager执行原生sql返回ResultSet-CSDN论坛
SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段
SpringBoot 注册Servlet三大组件ServletFilterListener-原生代码+@Bean+效果展示