プログラミング Java

【JdbcTemplate】IN句に値を入れて複数件取得する方法

投稿日:

JdbcTemplateでIN句に毎回異なる数の値をセットして、
複数のレコードを取得する場合は、「NamedParameterJdbcTemplate」で取得することができます。

コード例

 

解説

各コメント欄に対応して解説してきます。

Query

IN句の中に「:ids」というような、名称を定義します。

Params

HashSetでIN句に格納する値を準備します。
MapSqlParameterSource型の変数を作成し、addValueメソッドで追加します。
「”ids”」は、Queryで指定した「:ids」に対応しています。

Mapper

(Case1)
BeanPropertyRowMapperを使うケースです。
BeanPropertyRowMapperはBeanを用意する必要がありません。

(Case2)
独自Mapper(HistoryRowMapper)を使うケースです。

どちらの場合も、以下の形式なります。

 

参考

独自Mapper(今回で言うHistoryRowMapper)で実装する場合、
以下のようにMapperとBeanを用意します。

HistoryRowMapper

History

-プログラミング, Java
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

no image

【MySQL】自テーブルのカラムの値を0埋めで更新する方法

構文

記載例

  UPDATE前後の値を比較 UPDATE …

オブジェクト指向でじゃんけんを作ってみる

最近、プログラム自体を書いていない時間を多いので、再勉強がてら少しコードを書いてみました。 目次 何を作ったか?OOPで考慮したこと設計上の条件動作例ソースコード 何を作ったか? テーマ:じゃんけん( …

【JdbcTemplate】Queryの書き方(SELECT文)

JdbcTemplateでQueryを書く方法です! (SELECT文で、1件・複数件を取得するケース)   目次 前提usersテーブルUserクラスデータの取得Mapで取得する方法1件の …

no image

prepareステートメントの挙動について調べてみた

目次 調べるきっかけ調べたコード 調べるきっかけ PHPでSQLをセキュアに記述する方法としてprepareステートメントが推奨されているが、なぜなのかがわからず、挙動を調べれば自分なりに納得のいく答 …

VBAが書けるまでにどのくらいかかったか?

これからVBAを学ぼうとしている人向けに参考情報として書きます。 目次 前提結論3か月くらいAPIのツール作成何で勉強したか?Office TANAKAエクセルの神髄書籍最後に 前提 前提として、私の …

SpringFramworkの良書

Javaの基本を学んだ人が、次のステップ(Frameworkでの実装)として読む本。

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。