スポンサーリンク

Webアプリケーション開発

SpringBootのDB接続方式を決定する

投稿日:2021年2月10日 更新日:

SpringBootからMySQLやPostgres等のRDBに接続する方法は複数あります。プロジェクトごとに迷うポイントとなっています。

No接続方式SQLファイルメリットデメリット初期構築現場実績
1spring-data-jpa×SQLは書かない。エンティティを構築すれば、INSERT文、UPDATE文、DELETE文を書く必要がない。発行されるSQLを直接制御できない。
N+1問題に常に注意を払う必要がある。
エンティティ作成の必要あり。
リレーションを表現する場合はエンティティ設定が難しくなる。
△少ない。
2spring-mybatis△XMLに定義構築が簡単で、採用例が多い。必要なファイルを配置すればよく、比較的易しい。〇よく採用される。
3spring-jdbc×StringでSQL文字列生成ResultSetからDTOへの変換処理は書く必要がある。×見ない。
4Doma2SQL単体として実行できる形式でSQLファイルの記述ができる。(2-way-SQL)アノテーションプロセッサーの設定が難しい。
エンティティ作成の必要あり。
〇技術に敏感な会社では採用されている。
SpringBootのDB接続方式

いづれも、SELECT結果を自作のDTOに格納するORM機能は備えている。

DB接続方式決定のポイント

spring-mybatis

Spring以前のStruts系フレームワークの時代からMybatisは使われており、慣れている技術者は多い。

最も無難な選択である。

Doma2

spring-data-jpa

おススメしない。

エンティティ群を構築すれば基本的なCRUDはできるようになるのは魅力的だが、JPAという仕様についてしっかり知っておく必要があり、学習コストが高めな印象。

複雑なSELECT文、検索用SQLや集計用SQLには、結局ネイティブSQLを使うことになる。

JPQLというSQLに似た文法もあるが、採用されたプロジェクトを見たことはない。やはり、ネイティブSQLを使った方が早いからである。

 

補足ですが、JDBCドライバを使用して、Servlet/JSP時代のDAO/DTOパターンも使用できます。

SpringBootでDAO/DTOパターン

参考資料

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-Webアプリケーション開発

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.