我是Scala的新手,我正在查看一些涉及Spring JDBC模板和RowMapper的Scala代码:
这是这样的:
val db = jdbcTemplate.queryForObject(QUERY, new RowMapper[SomeObject]() {
def mapRow(ResultSet rs, int rowNum) {
var s = new SomeObject()
s.setParam1 = rs.getDouble("columnName")
return s
}
})
db
我是从内存中写的,所以我刚刚使用了通用名称。
我想知道为什么db会在最后编写。我想不出它的用途是什么。
此外,如果我在示例中有几个JDBC模板和一个像s
这样的对象,我想用几个JDBC模板的输出填充它的数据。是否可以在一个功能中执行此操作?是否有可能有一个mapRow函数,它不返回任何东西,以便我可能有一个模板数组并循环它们?
谢谢
答案 0 :(得分:1)
最后的db
表示return db
,其中跳过return语句。这是Scala中的标准约定。看起来你的代码是函数体,它假设返回db
。第一个语句只是将查询结果分配给db
RowMapper接口可以用implicit conversion替换为以下类型(ResultSet, Int) => SomeObject
的函数,这意味着它需要两个参数(ResultSet和Int)并返回SomeObject类型的结果