利用JDBC ResultSetMetaData 将数据反射到实体类中

来源:互联网 发布:淘宝信用卡避免手续费 编辑:程序博客网 时间:2024/06/06 00:25

1.JDBC ResultSetMetaData将数据反射到实体类中

代码:

private <T> List<T> setMetaData(ResultSet rs, Class<T> clazz) throws Exception {        List<T> tList = new ArrayList<T>();        T t = null;        while (rs.next()) {            t = clazz.newInstance();            ResultSetMetaData rsmd = rs.getMetaData();            int count = rsmd.getColumnCount();            for (int i = 1; i <= count; i++) {                String name = rsmd.getColumnName(i);                Field field = clazz.getDeclaredField(name);                field.setAccessible(true);                field.set(t, rs.getObject(name));            }            tList.add(t);        }        return tList;    }

这样可以比利用实体类反射获取到属性名在从JDBC中获取元数据有优势(必须查询所有数据才可以)

利用JDBC元数据反射不需要会根据查询的columnName反射到实体类中

0 0
原创粉丝点击