diff --git a/documents/contents/app-architecture/overview/compositions.md b/documents/contents/app-architecture/overview/compositions.md index 89c10729c..520e254a2 100644 --- a/documents/contents/app-architecture/overview/compositions.md +++ b/documents/contents/app-architecture/overview/compositions.md @@ -50,6 +50,16 @@ Spring Framework / Spring Batch をベースとするバッチアプリケーシ Spring Framework ベースの軽量で包括的なバッチアプリケーションフレームワークです。 大量のレコードを高速に処理するための並列化機能や、データの一貫性を保証するトランザクション管理機能など、バッチアプリケーションに必要な機能を提供します。 +- JDBC / MyBatis / JPA + + Java アプリケーションでリレーショナルデータベースへのアクセスを実装する際に候補となる技術群です。 + いずれも一般的に利用されている技術であり、 Spring Framework もこれらをサポートする機能を提供しています。 + 下記の通り、各々の技術に向き不向きがあるため、プロジェクトの特性と照らし合わせて適切な技術を採用することが重要です。 + + - JDBC:小規模なプロジェクトでの利用に適したデータベースアクセス技術です。 Spring アプリケーションで使用する場合、 Spring Data JDBC を利用することで単純な検索処理などは SQL を記述することなく簡潔に実装できます。一方、複雑な SQL 等を発行する場合はソースコード中に SQL 文を直接記述する必要があり、ソースコードが冗長になりやすい、 SQL 単独での文法エラーに気付きにくいなどの問題につながる可能性があります。 + - MyBatis:大規模なプロジェクトでの利用に適した OR マッパーです。 SQL をソースコードとは別に XML ファイルに分けて記述するため、複雑な SQL も定義しやすく、それらをソースコードと分離した形で管理できるといった利点があります。また、 MyBatis Generator を利用することで DB のスキーマ情報からデータアクセス部品を自動生成できます。 + - JPA:Jakarta EE が定めるデータアクセスの仕様であり、実際のプロダクトとしては Hibernate などがよく利用されます。 Jakarta EE 標準であるため、 Jakarta EE に準拠した AP サーバーを利用している場合はベンダーサポートを受けられる利点があります。一方、独特な仕様や動作を理解するための学習コストが高いため、有識者がいないプロジェクトでの利用は推奨しません。 + - Vue.js JavaScript を使った Web ベースの SPA を構築するための OSS フレームワークです。