タイトル
TOPJava → This Page

Java【Spring Framework】

前置き

Spring Framework を勉強したとき、参考書2冊を買って勉強をすすめました。
が、あくまでも Spring Framework の「入門」までの内容だったため
実務で当たり前に必要となる要件には触れられていなかったり、
(キーが複数あるテーブルの利用、複数テーブルの結合など)
利用するDBがインメモリデータベースだったり
で、 (PostgreSQLにするにはトランザクション制御も考えると設定内容が結構違っててハマりました)
少し実務レベルに踏み込んだ勉強をするときに色々と困りました。
何か新しい領域に踏み込むたびに
POM.xml 、application-config.xml 、persistence.xml の設定、
アノテーションの使い方などでハマってネットを彷徨うハメに。。。

そこで、ここでは自分の備忘録 兼 他の人にも参考になるように、
Spring Framework を用いた MVC モデルの Web システムに
DBアクセス(もちろん通常のRDB)やJUnitによるTestを組み込んだものを
構築するサンプルを1から順を追って解説するページを作りました。

ただし、Spring Framework 入門レベルは理解していることが前提のページです。
DI や AOP の解説などは一切していません。
DB自体(SQLなど)に関しても特に解説しません。
「JavaでWeb開発したことあるけどSpringでは初めて+Springも少しだけ勉強した」といった人向けです。
DBアクセス方法はいくつかあるので4種類毎に解説を分けました。

開発環境は
・Windows 8.1
・JDK 8
・STS(Spring Tool Suite) 3.9.5
・PostgreSQL 9.5.14
とします。

解説順序

まずは準備、次に各種DBアクセスで共通の部分までを構築、
そしてDBアクセスごとに
・単一テーブルのCRUD
・N:1テーブルのCRUD
・複合主キーテーブルのCRUD
・複数テーブルの結合
・トランザクション制御+エラーページ遷移
・AOP(どっちかというとオマケ)
・JUnitによるテスト
の順に構築していきます。
図:インデックス

DBアクセスは
・JdbcTemplate
・Entity Manager
・JpaRepository
・Criteria API
を解説します。
それぞれのページで特徴なども解説していますが、
Entity Manager と Criteria API は個人的には好きじゃありません(^^;;
JpaRepository がおすすめです。

各種説明へのリンク

最終更新日内容(リンク)
共通
2018/09/24 1.準備
2018/09/24 2.共通部分構築
JdbcTemplate
2018/09/24 3.1.1.JdbcTemplate 単一テーブルのCRUD
2018/09/30 3.1.2.JdbcTemplate N:1テーブルのCRUD
2018/10/06 3.1.3.JdbcTemplate 複合主キーテーブルのCRUD
2018/10/08 3.1.4.JdbcTemplate 複数テーブルの結合
2018/10/14 3.1.5.JdbcTemplate トランザクション制御+エラーページ
2018/10/20 3.1.6.JdbcTemplate AOPの利用
作成中 3.1.7.JdbcTemplate JUnitによるテスト
Entity Manager
2018/09/24 3.2.1.Entity Manager 単一テーブルのCRUD
2018/09/30 3.2.2.Entity Manager N:1テーブルのCRUD+自由なクエリ
2018/10/06 3.2.3.Entity Manager 複合主キーテーブルのCRUD
2018/10/08 3.2.4.Entity Manager 複数テーブルの結合+NativeQuery
2018/10/14 3.2.5.Entity Manager トランザクション制御+エラーページ
2018/10/20 3.2.6.Entity Manager AOPの利用
作成中 3.2.7.Entity Manager JUnitによるテスト
JpaRepository
2018/09/24 3.3.1.JpaRepository 単一テーブルのCRUD
2018/09/30 3.3.2.JpaRepository N:1テーブルのCRUD+自由なクエリ
2018/10/06 3.3.3.JpaRepository 複合主キーテーブルのCRUD
2018/10/08 3.3.4.JpaRepository 複数テーブルの結合+NativeQuery
2018/10/14 3.3.5.JpaRepository トランザクション制御+エラーページ
2018/10/20 3.3.6.JpaRepository AOPの利用
作成中 3.3.7.JpaRepository JUnitによるテスト
Criteria API
2018/09/24 3.4.1.Criteria API 単一テーブルのCRUD
2018/09/30 3.4.2.Criteria API N:1テーブルのCRUD
2018/10/06 3.4.3.Criteria API 複合主キーテーブルのCRUD
2018/10/08 3.4.4.Criteria API 複数テーブルの結合
2018/10/14 3.4.5.Criteria API トランザクション制御+エラーページ
2018/10/20 3.4.6.Criteria API AOPの利用
作成中 3.4.7.Criteria API JUnitによるテスト

更新履歴

2018/10/20 「3.1.6.JdbcTemplate AOPの利用」追加
      「3.2.6.Entity Manager AOPの利用」追加
      「3.3.6.JpaRepository AOPの利用」追加
      「3.4.6.Criteria API AOPの利用」追加
2018/10/14 「3.1.5.JdbcTemplate トランザクション制御+エラーページ」追加
      「3.2.5.Entity Manager トランザクション制御+エラーページ」追加
      「3.3.5.JpaRepository トランザクション制御+エラーページ」追加
      「3.4.5.Criteria API トランザクション制御+エラーページ」追加
2018/10/08 「3.1.4.JdbcTemplate 複数テーブルの結合」追加
      「3.2.4.Entity Manager 複数テーブルの結合+NativeQuery」追加
      「3.3.4.JpaRepository 複数テーブルの結合+NativeQuery」追加
      「3.4.4.Criteria API 複数テーブルの結合」追加
2018/10/06 「3.1.3.JdbcTemplate 複合主キーテーブルのCRUD」追加
      「3.2.3.Entity Manager 複合主キーテーブルのCRUD」追加
      「3.3.3.JpaRepository 複合主キーテーブルのCRUD」追加
      「3.4.3.Criteria API 複合主キーテーブルのCRUD」追加
2018/09/30 「3.1.2.JdbcTemplate N:1テーブルのCRUD」追加
      「3.2.2.Entity Manager N:1テーブルのCRUD+自由なクエリ」追加
      「3.3.2.JpaRepository N:1テーブルのCRUD+自由なクエリ」追加
      「3.4.2.Criteria API N:1テーブルのCRUD」追加
2018/09/24 新規作成


TOPJava → This Page