Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

各データアクセス技術の使い分けについて追記 #855

10 changes: 10 additions & 0 deletions documents/contents/app-architecture/overview/compositions.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ Spring Framework / Spring Batch をベースとするバッチアプリケーシ
Spring Framework ベースの軽量で包括的なバッチアプリケーションフレームワークです。
大量のレコードを高速に処理するための並列化機能や、データの一貫性を保証するトランザクション管理機能など、バッチアプリケーションに必要な機能を提供します。

- JDBC / MyBatis / JPA

Java アプリケーションでリレーショナルデータベースへのアクセスを実装する際に候補となる技術群です。
いずれも一般的に利用されている技術であり、 Spring Framework もこれらをサポートする機能を提供しています。
下記の通り、各々の技術に向き不向きがあるため、プロジェクトの特性と照らし合わせて適切な技術を採用することが重要です。

- JDBC:小規模なプロジェクトでの利用に適したデータベースアクセス技術です。 Spring アプリケーションで使用する場合、 Spring Data JDBC を利用することで単純な検索処理などは SQL を記述することなく簡潔に実装することが出来ます。一方、複雑な SQL 等を発行する場合はソースコード中に SQL 文を直接記述する必要があり、ソースコードが冗長になりやすい、 SQL 単独での文法エラーに気付きにくいなどの問題につながる可能性があります。
tsuna-can-se marked this conversation as resolved.
Show resolved Hide resolved
- MyBatis:大規模なプロジェクトでの利用に適した OR マッパーです。 SQL をソースコードとは別に XML ファイルに分けて記述するため、複雑な SQL も定義しやすく、それらをソースコードと分離した形で管理できるといった利点があります。また、 MyBatis Generator を利用することで DB のスキーマ情報からデータアクセス部品を自動生成できます。
- JPA:Jakarta EE が定めるデータアクセスの仕様であり、実際のプロダクトとしては本仕様に準拠した Hibernate などがよく利用されます。 Jakarta EE 標準であるため、 Jakarta EE に準拠した AP サーバーを利用している場合はベンダーサポートが受けられるという利点があります。一方、独特な仕様や動作を理解するための学習コストが高いため、有識者がいないプロジェクトでの利用は推奨しません。
tsuna-can-se marked this conversation as resolved.
Show resolved Hide resolved

- Vue.js

JavaScript を使った Web ベースの SPA を構築するための OSS フレームワークです。
Expand Down