Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用反射从SQL结果设置对象的所有字段_Java_Generics_Jdbc_Resultset_Instantiation - Fatal编程技术网

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

Java 使用反射从SQL结果设置对象的所有字段,java,generics,jdbc,resultset,instantiation,Java,Generics,Jdbc,Resultset,Instantiation,包含一个页面 那里的代码显示了如何将对象作为参数传递给泛型,以定义使用newInstance实例化的对象的类型。他们的示例代码在评论中继续提到: 使用反射并根据sql结果设置项的所有字段 我想知道这样的代码是什么样子的,用来用一行数据的结果填充一个对象的字段 ➠是否有人愿意发布这样的代码示例 我感兴趣的是查看一个实际的反射示例,以及如何将对象的成员/属性与数据库行的字段相匹配。这个方法是最优的还是推荐的不是问题,所以这里需要引用JDBC框架。我不建议这样做。这在很大程度上取决于您希望在结果集中得

包含一个页面

那里的代码显示了如何将对象作为参数传递给泛型,以定义使用newInstance实例化的对象的类型。他们的示例代码在评论中继续提到:

使用反射并根据sql结果设置项的所有字段

我想知道这样的代码是什么样子的,用来用一行数据的结果填充一个对象的字段

➠是否有人愿意发布这样的代码示例


我感兴趣的是查看一个实际的反射示例,以及如何将对象的成员/属性与数据库行的字段相匹配。这个方法是最优的还是推荐的不是问题,所以这里需要引用JDBC框架。

我不建议这样做。这在很大程度上取决于您希望在结果集中得到什么?它是从列名到值的映射吗?这是一长串的结果吗?您还有哪些其他可用的库spring、gson、hibernate、ApacheCommons、none?我在最后添加了注释。我不是在征求关于最佳JDBC处理的建议或讨论。我只是想看看一些反射代码在起作用。当我在教程页面上看到这个示例场景时,我很想看看省略的代码是什么样子。一些JdbcTemplate方法使用reflectionCheck Hibernate和EclipseLink用行值填充目标对象,它们还使用反射填充对象。
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; 
}