scala jdbc模板和rowmapper

时间:2012-07-12 20:06:22

标签: spring scala jdbc

我是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函数,它不返回任何东西,以便我可能有一个模板数组并循环它们?

谢谢

1 个答案:

答案 0 :(得分:1)

最后的db表示return db,其中跳过return语句。这是Scala中的标准约定。看起来你的代码是函数体,它假设返回db。第一个语句只是将查询结果分配给db

RowMapper接口可以用implicit conversion替换为以下类型(ResultSet, Int) => SomeObject的函数,这意味着它需要两个参数(ResultSet和Int)并返回SomeObject类型的结果