【Java】DBアクセスライブラリ [5] ~ Doma ~

Doma

 * Doma : Domain Oriented MApping framework (ドメイン指向マッピングフレームワーク)
 * 読み方は、「ドマ」
 * Javaの和製フレームワーク Seasar の O/Rマッパー S2Dao の後継として、開発。
  => 現在は、Seasarプロジェクトとは、独立。
http://www.seasar.org/
 * リリースノートを参照したけど、2018/10/11現在もメンテしてるので、少し安心。
https://github.com/domaframework/doma/releases

ライセンス

 * Apache License, Version 2.0
  => 商用可能

バージョン

https://github.com/domaframework/doma
Doma
 * Java 6 でコンパイルされ、 Java 6、 Java 7、 Java 8 上で動作
Doma2
 * Java 8 以上。Java 7 以前では対応せず
Doma3
 * Java 11。

# Doma3 まであるのは、知らなかった... 開発中?
https://doma.readthedocs.io/ja/doma-3/

■ 特徴 / 利点

 * SQLを外部ファイルに書ける (2 Way SQL)
 * 依存ライブラリがない
 * Javaの「Pluggable Annotation Processing API」を使い
   コンパイル時にできるだけチェックし、ミスを事前に防いでくれる
https://doma.readthedocs.io/ja/stable/annotation-processing/
  => 「Pluggable Annotation Processing API」については、以下の関連記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/37774601.html


トランザクション

https://doma.readthedocs.io/ja/stable/transaction/
Domaは、ローカルトランザクションをサポートします。 
... 略 ...

グローバルトランザクションを使用したい場合は、JTAJava Transaction API) の実装を
もつフレームワークアプリケーションサーバーの機能を利用してください。

ローカルトランザクション / グローバルトランザクション

* 以下が分かりやすい
https://wa3.i-3-i.info/word16110.html
https://wa3.i-3-i.info/word16109.html
 * ローカルトランザクション
 => 単体のデータベースのトランザクション処理

 * グローバルトランザクション
 => 複数のデータベースにまたがるトランザクション処理

■ 初期環境構築

 * 長くなったなので、以下の関連記事を参照のこと
https://blogs.yahoo.co.jp/dk521123/37799753.html

■ 補足 : .NET版 / Soma

 * Domaの.NET版であるSoma(Sql Oriented MApping framework)もあるらしい
  => 詳細は以下。
http://d.hatena.ne.jp/taedium/20100615/p1
 * ただ、2018/11/01現在の最新版が、v1.9.0.1(2016/08/12)で2年以上経ってるのでメンテされてるのか...
https://github.com/nakamura-to/Soma/releases

公式サイト

https://archive.codeplex.com/?p=soma
GitHub
https://github.com/nakamura-to/Soma

関連記事

Java】DBアクセスライブラリ [0] ~ 目次 ~

https://blogs.yahoo.co.jp/dk521123/37773005.html

Doma関連

Doma ~ 初期環境構築 / コード生成 / Hello World
https://blogs.yahoo.co.jp/dk521123/37799753.html