使用反射从SQL结果中设置所有对象的字段

时间:2017-08-20 23:43:03

标签: java generics jdbc resultset instantiation

Java Tutorials by Oracle包含一个页面Class Literals as Runtime-Type Tokens

这里的代码显示了如何将Class对象作为参数传递,可以与泛型一起使用来定义使用newInstance()实例化的对象的类型。他们的示例代码继续在评论中提及:

  

使用反射并从sql结果中设置所有项目的字段。

Collection<EmpInfo> emps = sqlUtility.select(EmpInfo.class, "select * from emps");
...
public static <T> Collection<T> select(Class<T> c, String sqlStatement) { 
    Collection<T> result = new ArrayList<T>();
    /* Run sql query using jdbc. */
    for (/* Iterate over jdbc results. */ ) { 
        T item = c.newInstance(); 
        /* Use reflection and set all of item's
         * fields from sql results. 
         */  
        result.add(item);
    } 
    return result; 
} 

我想知道这样的代码是什么样的,使用reflection来填充对象的字段,其中包含来自ResultSet的行的结果。

➠是否有人愿意发布此类代码的示例?

我的兴趣是看一个反射在行动的例子,看看如何将一个对象的成员/属性与数据库行的字段相匹配。这种方法是最优还是推荐不是问题,因此需要引用JDBC框架。

0 个答案:

没有答案