【发布时间】:2012-01-13 15:31:02
【问题描述】:
我已经有一个模型实例,它是一个基本的 POJO,我如何通过调用命名为与表列名称匹配的设置器来使用 dbutils 的值填充它(通过发出 SELECT)?
所以BasicRowProcessor 应该匹配,我只是找不到合适的类/方法来调用该对象作为参数。
我只想设置一个实例,而不是数组。
【问题讨论】:
标签: java database apache-commons apache-commons-dbutils
我已经有一个模型实例,它是一个基本的 POJO,我如何通过调用命名为与表列名称匹配的设置器来使用 dbutils 的值填充它(通过发出 SELECT)?
所以BasicRowProcessor 应该匹配,我只是找不到合适的类/方法来调用该对象作为参数。
我只想设置一个实例,而不是数组。
【问题讨论】:
标签: java database apache-commons apache-commons-dbutils
我不确定我是否理解您的问题。一些源代码会有所帮助。
有很多库执行 ORM。有关一些 ORM 项目,请参阅 source forge。其中之一是我创建的sormula。最简单的用法见POJO zero-config example。
【讨论】:
inventoryTable.selectInto(partNumber, inventory); - 库存是已经存在的 POJO,我只想用数据填充它。
你能做的就是
YourObject result = new BasicRowProcessor().toBean(yourResultSet,YourObject.class);
它会创建实例。此 API 并非旨在让您修改已存在的对象。
如果您确实需要更新现有对象,您可以实现 YourObject.copy(YourObject obj) 方法并使用 BasicRowProcessor.toBean 的结果调用它,但它看起来很丑。
另一个(也是丑陋的)解决方案是实现BeanProcessor 类,实现BeanProcessor.newInstance(Class) 方法以返回您的对象,然后将您的实现实例传递给BasicRowProcessor 实例。
【讨论】: