Spring
2022.08.25
Springとデータベースの連携!SpringJDBCを使ってアクセスするには
2023.11.18

この記事は「Javaで学習するSpringによるWebアプリ開発」というトレノキャンプのeラーニング講座を基に解説した記事です。

Javaで学習するWEBアプリ開発(Spring)

前回の記事では、SpringMVCでブラウザへのデータ出力を行いました。

ファーストステップ
・Springからデータベースを操作しましょう

この記事ではSpringとデータベースの連携について解説していきます。


1.Spring JDBC

まずは、再度Spring MVCアーキテクチャの図を確認します。

Spring MVC Architectureとデータベースの概要図

前回はControllerからModelを介してViewでHTMLを表示させるという部分まで実装しました。今回は、そこに最もシンプルな方法でデータベースを加えます。


本来は、データベース操作用に専門のクラスを作成しますが、今回は図のようにControllerから直接データベースへアクセスしてデータを取得するようにします。そして、ひとまずデータベースへのアクセスができるようになったら、後々DAOと呼ばれるデータベースアクセス専用のクラスを用いるデザインへ更新していきます。


次の項目では、それでは、簡単にコードを見ていきましょう。



2.データベースへのアクセス

SampleControllerとtest.htmlのコードを確認

今回はControllerクラスから直接Spring JDBCを用いてデータベースへアクセスするため、SampleController.javaへ処理を追記しています。


まずは、クラス内でJDBCを用いるためにJdbcTemplate型のインスタンス変数を宣言し、コンストラクタ内で自動的に渡されてくるインスタンスを変数に代入します。これだけでデータベースへアクセスする準備は整ったので、早速メソッドから利用していきます。


test()メソッド内でJdbcTemplateのqueryForMap()メソッドを呼び出すことで、データベースに対して単純なSELECTを実行しています。このメソッドは引数にSQL文をStringで渡すことで、その結果をMap<String, Object>として返却します。このMap<String, Object>は、それぞれStringはカラム名、Objectはそのカラムに登録されているデータに対応しています。



ここまででデータベースからデータを取得できたので、続いて取得したデータをHTMLに表示するための処理を記述しています。


まずはHTMLをレンダリングするViewにデータを渡すため、ModelへaddAttribute()メソッドを用いて取得したデータを登録しています。この際、Mapから値を取得するためにget()メソッドを使用します。また、今回get()メソッドの戻り値はObject型ですが、出力時に自動的にString型に変換されるため、ここではこのまま使用してしまいます。



それでは、リクエストスコープへデータを登録できたので、最後にHTMLファイルの方を編集します。


HTMLでは、データを表示するために<p>タグを用いています。Thymeleafではタグの「th:text」属性に「${キー}」と設定することで、リクエストスコープ内の対応する値を表示できます。先ほど、Controllerクラスの方でキーはそれぞれ「name」、「email」としたので、それぞれ対応する<p>タグを用意しキーを指定しています。
以上で簡単にデータベースアクセスの仕組みを確認できたので、次の記事では実際に動かしていきましょう。



第2章 Springの基本

1.講義環境を作る

以降アプリ制作を行うにあたって、Springを使う環境を作っていきましょう。
Gradleプロジェクトのインポート方法、プロジェクトを確認する方法を紹介します。

2.画面の出力方法

制作に慣れるため、SpringのMVCアーキテクチャの体験、データのブラウザへの出力を行いましょう。
それにともなって、ビルドツールの「Gradle」や記述方法の「アノテーション」、テンプレートエンジンの「Thymeleaf」についても解説していきます。

3.実践:画面の出力方法

手順に沿ってデータをブラウザに出力していきましょう。
アノテーションの付与、リクエストスコープが実際どのように使われているのか、Thymeleafを使う際の注意点などを確認していきます。

4.データベースの操作【現在の記事】

Springからデータベースを操作する方法について確認します。
ここでは一番シンプルな、Controllerから直接データベースへアクセスしてデータを取得する処理を見ていきましょう。

5.実践:データベースの操作【次の記事】

実際にデータベースを操作します。
データベースのアクセスに用いるSpringJDBCクラスの使われ方を確認しましょう。






この記事をシェア