春にscalaの暗黙の変換を使用したいと思いJdbcTemplate
ます。
JdbcTemplate
次の2つの方法があります:
jdbcTemplate.update(String sql, Object... params) // (1)
jdbcTemplate.update(String sql, PreparedStatementSetter pss) // (2)
PreparedStatementSetter
は単なるインターフェースであり、関数値をに渡したいだけJdbcTemplate
です。つまり、私はそれをに変更したいということです
JdbcTemplate.update(sql:String、setter:PreparedStatement => Unit)//(3)
私がしたことはRichJdbcTemplate
、のラッパーとして、を作成することJdbcTemplate
です。
class RichJdbcTemplate(jdbcTemplate: JdbcTemplate) {
def update(sql: String, setter: PreparedStatement => Unit) {
jdbcTemplate.update(sql, new PreparedStatementSetter() {
def setValues(ps: PreparedStatement) {
setter(ps)
}
})
}
}
そして、私が呼び出すたびに、との間でjdbcTemplate.update(sql, setter: PreparedStatement => Unit)
暗黙の変換が行われることを期待していました。ただし、実際には、ここでは暗黙的な変換は行いません。ここでは、メソッドがの署名に準拠しているためです。そのため、ここには暗黙の変換はありません。これを達成できる他の解決策はありますか?ありがとう。jdbcTemplate
RichJdbcTemplate
jdbcTemplate.update(String sql, Object... params)