Validationメッセージの出力:StrutsとSpringの違い
Struts
・Formファイル
・struts-config.xml
の2つで設定=Viewまでで完結、Controllerまで行かない
Spring
入力項目を持つBean上でアノテーションをつけることによりValidation処理を実施
@NotNull
@maxlength(20)
private String name;
排他制御
同じデータを複数人が同時に変更できない仕組み
①悲観的(ペシミスティック)排他制御
最初にデータのロックを取得してから操作を行う
②楽観的(オプティミスティック)排他制御
最初にデータのロックを取らずに操作を行い、競合が発生した場合にのみ対応
(Oracle)ロックする方法
SELECT文の後ろにfor updateをつける
=SELECTレコードをロックする
オプション:
wait句=X秒待ってエラー発行
no wait句=待たずにエラー発行
Oracle DBが持つ機能
dualテーブル
関数の試し打ちなどに使用
rownum列
SELECT文で取得した結果行に自動的に割り当てられる擬似列(擬似カラム)のこと
データの件数制限に使う
ROW_NUMBER()関数
分析関数(ウィンドウ関数)
ORDER BYやPARTITION BYで順序を制御可能
ORDER BYによる並び替えが可能
ページネーションや詳細な並び替えに反応
※rounum列は並び替えに使用できない
PL/SQL
プロシージャまたはストアドプロシージャ
Oracle社がSQLを拡張した言語
Spring Boot
Springの初期設定の手間を省くことができるフレームワーク
開発効率を上げることができる
重要なアノテーション
アノテーション | null | 空文字 | 空白 |
---|---|---|---|
@NotNull | NG | OK | OK |
@NotEmpty | NG | NG | OK |
@NotBlank | NG | NG | NG |
Spring Bootの追加ツール
Spring Boot DevTools
Webアプリケーションを自動で再起動
実例)本来はJavaなどのコードを修正した場合、Webアプリケーションの再起動が必要だが、DevToolsを入れておくとファイルを保存した瞬間にWebアプリケーションを自動で再起動してくれる
Lombook
ロンボック。ライブラリの一種。
本質的ではないコード(getter,setterなど)を自動で生成
Thymeleaf
Spring Bootが標準で使うHTMLのテンプレートエンジン
※テンプレートエンジンとは
HTMLのテンプレートとデータを合成してHTMLを作成してくれる機能
※Thymeleaf以前はJSPを使用
Maven
メイブン。
プロジェクト(ライブラリ)の管理ツール
pom.xmlに記述(Javaプロジェクトのビルド/依存関係の管理/ドキュメントの作成などを自動化)
MyBatisでのjavaファイルとxmlファイルの紐づけ
①javaファイルの方に@Mapperアノテーションをつける
②xmlファイルにを記述
③javaファイルのメソッド名とxmlファイルのidを合致させる
Javaのコーディング規則(一部)
変数は小文字から始め単語の区切りのみ大文字にする
定数は全て大文字で、単語の区切りにアンダースコアを用いる
⇒私の場合は、変数の区切りにアンダースコアを用いた場合、DBから値を渡す際に失敗しnullとなった(1つの事例に過ぎないので他のパターンもありうる)
Patternアノテーション
正規表現を扱うアノテーション
@Pattern(regexp = "(正規表現)",message = "~")
メッセージ例)"{0}は半角数字を入れてください"
messageでメッセージを設定できる。他のアノテーション(@NotBlankなど)でもできる
ただし、propertiesファイルの方が優先される模様