2012-07-12 60 views
0

我是新來斯卡拉,我看着有點Scala代碼涉及一個Spring JDBC模板和RowMapper的:斯卡拉JDBC模板的RowMapper

它是這樣的:

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

db末意味着return db其中return語句被跳過。這是斯卡拉的標準慣例。看起來像你的代碼是函數的一個主體,它假定返回db。第一條語句簡單地分配查詢到db

RowMapper的接口可與implicit conversion被替換爲以下類型(ResultSet, Int) => SomeObject,這意味着它有兩個參數(結果集和Int)的函數的結果,並返回的結果類型SomeObject