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