Java-如何从Resultset构造Java对象

Java-如何从Resultset构造Java对象,java,design-patterns,Java,Design Patterns,在我的应用程序中,我们使用resultset查询数据库,然后构造一个对象,类似于: item.setType(resultset.getString(TYPE)); item.setValue(resultset.getString(PRICE)); 现在的问题是,我的item类有大约120个字段,我不想编写120行代码来设置值。我们有没有更干净、更紧凑的方法?您基本上有4种选择: 写120行代码。这是最简单的方法,但正如您所发现的,可能会很乏味 使用类似Hibernate的O

在我的应用程序中,我们使用resultset查询数据库,然后构造一个对象,类似于:

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

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

您基本上有4种选择:

  • 写120行代码。这是最简单的方法,但正如您所发现的,可能会很乏味

  • 使用类似Hibernate的ORM。如果你还不熟悉它,你将有几个月的学习曲线。根据我个人的经验,它可以在在线应用程序中很好地工作,但对于批处理来说,对象图的自动管理成为了障碍

  • 使用类似Spring数据的东西。这是选项1和选项2之间的一种折衷。它使用反射和
    ResultSetMetaData
    查询将数据从结果集映射到您提供的DAO。与成熟的Hibernate(或其他ORM)相比,它的学习曲线要小得多,但如果满足您的需要,它可以成为一个实时的节省器

  • 编写自己的基于反射/结果元数据的代码来进行映射。如果要这样做,最好使用Spring数据或类似工具。不推荐


  • 您基本上有4种选择:

  • 写120行代码。这是最简单的方法,但正如您所发现的,可能会很乏味

  • 使用类似Hibernate的ORM。如果你还不熟悉它,你将有几个月的学习曲线。根据我个人的经验,它可以在在线应用程序中很好地工作,但对于批处理来说,对象图的自动管理成为了障碍

  • 使用类似Spring数据的东西。这是选项1和选项2之间的一种折衷。它使用反射和
    ResultSetMetaData
    查询将数据从结果集映射到您提供的DAO。与成熟的Hibernate(或其他ORM)相比,它的学习曲线要小得多,但如果满足您的需要,它可以成为一个实时的节省器

  • 编写自己的基于反射/结果元数据的代码来进行映射。如果要这样做,最好使用Spring数据或类似工具。不推荐


  • 您可能正在寻找类似Hibernate的ORM。不完全是,这是一个相当古老的项目,人们不打算使用任何其他技术。好吧,你的电话“_(ツ)_/“您可能正在寻找类似Hibernate的ORM。不太可能,这是一个非常古老的项目,人们不打算使用任何其他技术。好的,您的电话”_(ツ)_/¯