反射给javabean赋值
来源:互联网 发布:网络上传速度怎么设置 编辑:程序博客网 时间:2024/06/08 06:16
package org.acooly.thrift.demo.client;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.Date;import java.util.List;public class reflect { public static void main(String[] args) throws Exception { getBean(Student.class); } // 泛型方法 public static <T> List<T> getBean(Class<T> clazz) throws Exception { ArrayList<T> list = new ArrayList<T>(); Connection con = null; // 注册JDBC驱动,JAVA1.5以后 JDBC自动加载驱动了 所以这句代码可以省略; Class.forName("com.mysql.jdbc.Driver").newInstance(); // 提供地址用户名密码并获得连接对象 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", ""); // 有Connection对象创建PreparedStatement PreparedStatement ps = con .prepareStatement("select * from orderitem o where o.itemid >?"); // 设置参数,参数索引位置是从1开始(Hibernate参数索引位置是从0开始) ps.setInt(1, 10);// 过滤itemid大于10的记录 ResultSet rs = ps.executeQuery(); // 循环读取结果集的每一行的每一列 Field[] fields = clazz.getDeclaredFields(); while (rs.next()) { // 获得无参构造对象方法创建实例 T javabean = clazz.getConstructor(new Class[] {}).newInstance(); for (Field field : fields) { String fieldName = field.getName(); Object value = null; System.out.println(field.getType()); System.out.println(String.class); System.out.println(Date.class); // 根据字段类型决定结果集中使用哪种get方法从数据中取到数据 if ((String.class).equals(field.getType())) { value = rs.getString(fieldName); if (value == null) { value = ""; } } if (field.getType().equals(int.class)) { value = rs.getInt(fieldName); } if (field.getType().equals(Date.class)) { value = rs.getDate(fieldName); } // 获得属性的首字母并转换为大写,与setXXX对应 String firstLetter = fieldName.substring(0, 1).toUpperCase(); String setMethodName = "set" + firstLetter + fieldName.substring(1); Method setMethod = clazz.getMethod(setMethodName, new Class[] { field.getType() }); setMethod.invoke(javabean, new Object[] { value });// 调用对象的setXXX方法 } list.add(javabean); } // 关闭 con.close(); ps.close(); return list; }}
参考文章:
http://blog.csdn.net/yu445375039/article/details/7578847
本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1732029
0 0
- 反射给javabean赋值
- java读取xml获得list并通过反射赋值给javabean
- 利用反射实现JavaBean的自动赋值
- 运用反射给实体赋值
- C#反射给字段赋值
- 使用反射给vo赋值
- 通过反射给bean赋值
- 利用反射,给model类赋值
- 利用“反射”给类的属性赋值。
- java 反射 根据字符串给字段赋值
- 利用反射快速给Model实体赋值
- C#利用反射给实体属性赋值
- java反射给实体类赋值
- JAVA反射——给属性赋值
- java反射机制动态给属性赋值
- 利用反射快速给Model实体赋值
- java 反射给字段重新赋值
- 利用反射快速给Model实体赋值
- 资源国际化
- spring 3.2 自定义参数绑定--日期格式转换器
- js jquery前台解析json字符串
- Java对象转换成Json字符串
- jquery获取父级元素和子级元素
- 反射给javabean赋值
- 面试2016/01/05
- Ubuntu16.04 安装 samba
- 字符串常量池、堆、栈
- mybatis使用详细教程
- jquery级联下拉框
- Mybatis动态sql和sql片段
- 生成随机密码和邮箱、手机匹配
- enum枚举类型