Java - 如何从结果集中构造java对象

标签 java design-patterns

在我的应用程序中,我们使用结果集来查询数据库,然后构造一个类似以下的对象:

    item.setType(resultset.getString(TYPE));
    item.setValue(resultset.getString(PRICE));

现在的问题是我的项目类有大约 120 个字段,我不想编写 120 行代码只是为了设置值。我们有更干净、紧凑的方法吗?

最佳答案

你基本上有 4 个选择:

  1. 编写 120 行代码。这是最简单的方法,但正如您发现的那样可能很乏味。

  2. 使用像 Hibernate 这样的 ORM。如果您还不熟悉它,您将需要几个月的学习时间。根据我个人的经验,它在在线应用程序中可以很好地工作,但对于批处理,对象图的自动管理会产生阻碍。

  3. 使用 Spring Data 之类的东西。这是选项 1 和 2 之间的中间方式。它使用反射和 ResultSetMetaData 查询将数据从结果集映射到您提供的 DAO。与成熟的 Hibernate(或其他 ORM)相比,它的学习曲线要​​少得多,但如果它满足您的需求,它可以真正节省时间。

  4. 编写您自己的基于反射/ResultSetMetaData 的代码来执行映射。如果您打算这样做,那么使用 Spring Data 或类似工具会更好。不推荐。

关于Java - 如何从结果集中构造java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45581019/

相关文章:

asp.net-mvc-3 - DI 模式是否限制了昂贵的对象创建以及不经常使用的依赖项?

java - 如何在 Spring 中 Autowiring 业务对象

java - 无法读取调制解调器的所有消息

java - 无法在 Spinner 中设置所选项目

c# - 是否有任何标准方法或设计模式来处理这个问题?

java - 如何在包装器中最好地将 Map<String,Foo> 转换为 Map<MyEnum,Foo>

java - 如何在 java 运行时解析环境变量

java - 无法重置 JavaFX 应用程序中的 StringBuffer

java - 使这个HashMap更高效的方法

design-patterns - Matlab GUI 应用程序中的软件工程和模式?