SQLMapperはSQL文をJavaなどのオブジェクトにマッピングするツール。MyBatisが代表例。開発者がSQL文を直接記述し、結果をオブジェクトに自動変換する。複雑なクエリやDBの細かい制御が必要な場合に有効。柔軟性が高い反面、SQLの記述負担がある。
ORMはオブジェクト指向言語のオブジェクトとRDBのテーブルを自動マッピングするフレームワーク。HibernateやJPAが代表例。開発者がオブジェクト操作に専念でき、SQLは自動生成。シンプルな操作に向く反面、複雑クエリには向きにくい。
使う場面:SQLMapperは複雑なクエリやパフォーマンス調整が必要な場合、ORMはシンプルなCRUD操作が中心の場合。ニュアンス:SQLMapperは「SQL第一」の発想、ORMは「オブジェクト第一」の発想。対象:SQLMapperはDB専門知識が求められ、ORMはDB知識を隠蔽する。
シンプルなCRUD中心ならORM、複雑クエリ・既存DB連携ならSQLMapper。パフォーマンス最適化が重要ならSQLMapperを検討。チーム内でDB知識にばらつきあればORMが無難。