デーベース操作

エンティティ

itemテーブル構造のクラスItemを作成します。これによりO/Rマッピングの利用が可能になります。またitemテーブルを読み込んだ際の受け皿として利用します。Spring Bootではこのクラスのことを「エンティティー」と呼びます。

7行目~10行目のようにテーブルitemと同名の変数を定義します。

6行目の「@id」は、次の行(Integer id)がこのテーブルのキーであることを意味します。

あとはゲッター/セッター、引数無しのコンストラクタを作成すれば完成です。

リポジトリ

実際にデーターベースを操作するクラスItemDaoを作成します。

11行目の「@Repository」でこのクラスがデータベース操作であることを宣言しています。

テーブルitemには種類IDはありますが、種類名の情報はありません。そのためテーブルkindを結合し情報を取得します。また金額もカンマ編集されていないため別変数を設け対応します。itemテーブルの内容、種類名、カンマ編集後金額の定義が14行目~16行目です。ここでイメージして頂きたいのはこのクラス自体が商品情報の1件に対応するクラスということです。

テーブルアクセスクラスjdbcTemplateのインスタンス化の方法が特殊な方法となっています。コンストラクタの引数でインスタンスを受け取りそれを設定しています。現在はこの方法が推薦されています。

37行目がデータアクセス命令です。SQLを引数にしてメソッドqueryForListを実行しています。戻り値はList<Map<String, Object>> 型になります。

戻り値を件数分、各項目毎に設定していきます。そのためこのクラスのList型の配列を用意します。

40行目から戻り値の件数分ループします。そしてクラスItemDaoに各項目設定し、List型の配列に追加していきます。

最後の50行目は、呼び出し元へデータが取扱いやすいように通常の配列に変換し返しています。

タイトルとURLをコピーしました