1
0

Doma2を使ってみる(その1)

Last updated at Posted at 2024-03-31

Doma2を使ってみる(その1)

ライブラリ概要

Doma 2はJava 8+向けのデータベースアクセスフレームワークです。Domaにはさまざまな強みがあります。

特徴

  • SQLマッパー型
  • 2-way SQL
  • Kotlinサポート
  • コンパイル時にアノテーションプロセッサーを使用して、ソースコードを検証および生成します。
  • 型安全なCriteria APIを提供します。
  • 他のライブラリに依存しません。

SQLマッパー型

データベースのテーブルとプログラムのクラスを直接対応付けることができます。
また、SQLは別途テキストファイルに書くことが多い

メリット

  • 学習コストが低い
    • SQLを知っていれば利用することができる

デメリット

  • 誰でも扱える結果、共通化されないことが多い

選定理由

  • 開発者を選ばずとりあえず DB アクセスをして動くものを作りたい場合に採用される

2-way SQL

SQL単体でも、プログラムからでも実行できる

select * from t_product where id = /* id */'1'

メリット

  • SQLを直接書くことができるため、SQLのパフォーマンスを最大限に引き出すことが可能です。
  • SQLファイルとJavaのコードが一致するため、保守性が高まります。
  • SQLの結果をJavaのオブジェクトにマッピングする機能があります

デメリット

  • SQLを直接書くため、SQLに詳しくないと使いこなすのが難しいかもしれません。
  • データベースの種類によっては、SQLの書き方を変える必要があるかもしれません。
  • ORMフレームワークと比べると、機能が少ないかもしれません。

Kotlinサポート

Kotlin1.4.0以降をサポート
Kotlinを利用した場合のベストプラクティスの書き方がある

コンパイル時にアノテーションプロセッサーを使用して、ソースコードを検証および生成します。

Doma はコンパイル時に Pluggable Annotation Processing API を使用します。

型安全なCriteria APIを提供します。

JPAの機能の一部であるCriteriaAPIを提供している。
Kotlinの場合は、Kotlin固有のCriteriaAPIを利用する。

まとめ

Doma2は2way sqlがあるおかげで、誰でもDBアクセスが簡単にできる点が評価されているみたい
Doma2から2way sqlだけ切り出して他のORMを利用している人もいるので、2way sqlがあるだけでDoma2を採用するのはよくなさそう。
実際にDoma2を利用してみて良さそうな点を考えたい

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0