【问题标题】:How do I populate database values into an existing object model?如何将数据库值填充到现有对象模型中?
【发布时间】:2012-01-13 15:31:02
【问题描述】:

我已经有一个模型实例,它是一个基本的 POJO,我如何通过调用命名为与表列名称匹配的设置器来使用 dbutils 的值填充它(通过发出 SELECT)?

所以BasicRowProcessor 应该匹配,我只是找不到合适的类/方法来调用该对象作为参数。

我只想设置一个实例,而不是数组。

【问题讨论】:

    标签: java database apache-commons apache-commons-dbutils


    【解决方案1】:

    我不确定我是否理解您的问题。一些源代码会有所帮助。

    有很多库执行 ORM。有关一些 ORM 项目,请参阅 source forge。其中之一是我创建的sormula。最简单的用法见POJO zero-config example

    【讨论】:

    • 我正在寻找类似(对于您链接的示例)inventoryTable.selectInto(partNumber, inventory); - 库存是已经存在的 POJO,我只想用数据填充它。
    【解决方案2】:

    你能做的就是

    YourObject result = new BasicRowProcessor().toBean(yourResultSet,YourObject.class);
    

    它会创建实例。此 API 并非旨在让您修改已存在的对象。

    如果您确实需要更新现有对象,您可以实现 YourObject.copy(YourObject obj) 方法并使用 BasicRowProcessor.toBean 的结果调用它,但它看起来很丑。

    另一个(也是丑陋的)解决方案是实现BeanProcessor 类,实现BeanProcessor.newInstance(Class) 方法以返回您的对象,然后将您的实现实例传递给BasicRowProcessor 实例。

    【讨论】:

    • 是否有其他替代库允许我这样做?
    猜你喜欢
    • 2013-10-04
    • 2019-02-28
    • 2018-08-26
    • 2017-07-31
    • 2019-07-05
    • 1970-01-01
    • 2016-06-07
    • 2013-06-12
    • 2016-11-19
    相关资源
    最近更新 更多