kotlin:cases:jdbctemplate
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
kotlin:cases:jdbctemplate [2023/08/04 17:13] – 作成 mikoto | kotlin:cases:jdbctemplate [2023/08/04 17:39] (現在) – mikoto | ||
---|---|---|---|
行 1: | 行 1: | ||
====== JDBC テンプレートでレコードを取得して使う ====== | ====== JDBC テンプレートでレコードを取得して使う ====== | ||
<code kotlin> | <code kotlin> | ||
+ | |||
+ | params = mapOf ( | ||
+ | " | ||
+ | " | ||
+ | ) | ||
+ | |||
jdbcTemplate.queryForStream(getSql(), | jdbcTemplate.queryForStream(getSql(), | ||
val rowData = mutableListOf< | val rowData = mutableListOf< | ||
行 11: | 行 17: | ||
| | ||
rowData // 1行のデータをキーと値のペアのリストとして返す | rowData // 1行のデータをキーと値のペアのリストとして返す | ||
+ | }.use { stream -> | ||
+ | // クエリの結果ストリームを完了させるために、useを使用してストリームを消費する | ||
+ | stream.forEach { row -> | ||
+ | val id = row.firstOrNull { it.first == " | ||
+ | val name = row.firstOrNull { it.first == " | ||
+ | // 他のカラムを適宜参照 | ||
+ | | ||
+ | // ここで得られたデータを処理する | ||
+ | processRowData(id, | ||
+ | } | ||
} | } | ||
+ | </ | ||
+ | |||
+ | ここで、firstOrNullはコレクション(リストや配列など)から最初に条件を満たす要素を取得する関数です。条件を満たす要素が見つからない場合はnullを返します。 | ||
+ | .firstと.secondは**Pair**クラスのメソッドで、キーと値のペアからそれぞれキーまたは値を取得するために使用される。 | ||
+ | <code kotlin> | ||
+ | // Pair の first と second の使用例 | ||
+ | val pair: Pair< | ||
+ | val key: String = pair.first // キーを取得 | ||
+ | val value: Any? = pair.second // 値を取得 | ||
</ | </ |
kotlin/cases/jdbctemplate.1691136817.txt.gz · 最終更新: 2023/08/04 17:13 by mikoto