我有一个从getJdbcTemplate()。query
返回的对象列表看起来像这样
object(test,test,test,1)
object(test,test,test,2)
object(test,test,test,3)
如何将这些转换为一个看起来像这样的对象
object(test,test,test,list<t>({1,2,3}))
Hopefuly你从我的绳索伪对象表示中得到了想法:)
答案 0 :(得分:1)
JdbcTemplate
处理行,因此您需要RowMapper
来提取值并将它们转换为自定义类型的列表(实现与此结构object(test,test,test,1)
对应的类) 。然后,您可以处理提取的值并从列表值中组合新对象。
<强>参考:强>
答案 1 :(得分:1)
我认为使用RowMapper
可能会有点痛苦。也许,你可以做这样的事情(顺便说一句,这是我的伪): -
List<Map> rows = getJdbcTemplate().queryForList(sql);
MyObject obj = null;
for (Map row : rows) {
// configure the first 3 fields upon object creation.
if (obj == null) {
obj = new MyObject(row.get("firstField"), row.get("secondField"), row.get("thirdField"));
}
// basically add each item into the list
obj.addToList(row.get("fourthField"));
}
答案 2 :(得分:0)
难道你不能使用二维数组吗?
http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm
我有点像java的菜鸟,所以如果我不对,请原谅我的无知。
答案 3 :(得分:0)
扩展您的对象模型。
您需要创建一个新对象,类似于您使用单个值参数创建的对象,而是将列表或集合作为最终参数。您的对象不是在那里存储单个值,而是在那里存储列表或集合。如果在创建对象后此列表或集合将是不可变的,您应该考虑在存储数据之前将数据转换为int[]
。
然后,在这个新对象上构建您需要的任何方法。您甚至可以编写一个方法来返回旧对象的数组,其中每个对象只有一个值。