Jdbc 将sql out参数映射到POGO
我有如下groovy代码Jdbc 将sql out参数映射到POGO,jdbc,groovy,Jdbc,Groovy,我有如下groovy代码 query.call(sqlString, [Sql.out(OracleTypes.CURSOR)]) { ResultSet cursor -> while (cursor.next()) { println cursor.getString("whatever") } 但我想做的是,将整行加载到一个对象中。就像这个例子一样 sql.eachRow("Select * from Person") {
query.call(sqlString, [Sql.out(OracleTypes.CURSOR)]) { ResultSet cursor ->
while (cursor.next()) {
println cursor.getString("whatever")
}
但我想做的是,将整行加载到一个对象中。就像这个例子一样
sql.eachRow("Select * from Person") {
persons << new Person( it.toRowResult() )
}
sql.eachRow(“选择*来自个人”){
persons而不是使用query.call
使用query.callWithRows
(带有空的闭包参数{}
)然后使用常规的列表。结果列表上的每个方法。请参阅此处的文档:@BalRog的建议将迭代结果两次。您可以对闭包本身应用所需的映射转换callWithRows
生成Map
的列表(GroovyRowResult
实现Map
)。因此@Steve可以使用Groovy映射构造函数,直接从映射列表转到人的列表。
s。其他任何操作都需要您对每个列使用ResultSet.get
,以构造所需的映射,以便他可以使用Groovy映射构造函数。非常粗糙。如果效率如此重要,请在callWithRows
result list。这样,您只会生成一个最终列表,即Person
s列表。