S2JDBC
タイプセーフで流れるような API を備えたデータベースアクセスフレームワーク
SQL を記述せずに API で DB アクセスができるし、API では記述が難しいものについては外出しの SQL も利用できる
特徴
流れるようなインターフェイスにより、SQL に近い記述 static インポートの活用で、直感的かつタイプセーフな記述
外部 SQL ファイル (2WaySQL) による任意の SQL の実行も可能
マッピング
S2JDBC では、データベース上のテーブルをエンティティ (通常の Java クラス) と呼ばれるクラスにマッピングする
エンティティは JPA のアノテーションを使って定義 エンティティを S2JDBC-Gen でデータベースから自動生成したり、逆にエンティティからデータベースの DDL を作成することが可能 設定
データベース接続の設定 : jdbc.dicon で行う
複数のデータソースの利用も可能
動的にデータソースを切り替えるときは : SelectableDataSourceProxy で定義
JdbcManager の設定 : 実装が s2jdbc.dicon でコンポーネントとして定義されている
データソースやコネクションプール、トランザクションマネージャといった機能は Java EE 対応のアプリケーション・サーバーで提供されている
アプリケーションサーバの機能を使用することが推奨される
データソースを JNDI からルックアップ : jdbc.dicon で JndiResourceLocator を使用 トランザクション制御
s3-extension-x.x.x.jar に、様々なアプリケーションサーバが提供する JTA を使うための dicon ファイルが用意されている
外部 SQL ファイルの利用
DB によってファイルの使い分けができる
S2JDBC はバージョンカラムを用いた楽観的排他制御を行なう機能を備える