ディベロッパーのためのチュートリアル

ディベロッパーがDBFluteを使って開発する上で必要な情報をまとめたページです。 ディベロッパーは真っ先にこのページを読み、開発中も調べものをするときもこのページがエントリとなります。

ExampleDB (前提)

DBFluteの(至る所の)説明において ExampleDB が利用されます。基本的な構造をあらかじめ理解しておくとドキュメントの理解が深まりますので、まず最初に一度は目を通しておきましょう。

DBFluteとは?

DBFluteは、(アプリケーション)プログラム上から データベースを検索したり更新したりするためのフレームワーク です。ディベロッパーが利用する Entity クラスなど、DBアクセスのためのクラスはDBFluteが自動生成 します。

DBアクセスのスタイル

ディベロッパーが実装する上で、必ず押さえるべきポイントです。

簡単(定型的)なSQL
ConditionBean
複雑(非定型)なSQL
外だしSQL(OutsideSql) *2Way-SQL

実装中にどちらを利用すれば良いのか迷う場合は ConditionBeanのスコープ を参考にします。

ディベロッパーが意識するクラス

ディベロッパーが(主に)意識するクラスとして、以下のものがあります。

Entity
データ(レコード)を格納するクラス
Behavior
全てのDBアクセスの処理を司るクラス (DIコンポーネント)
ConditionBean
検索条件を組み立てるクラス

ディベロッパーが意識するタスク

ディベロッパーが(主に)意識するタスクとしては以下のものがあります。

ReplaceSchema
ローカル環境のDBの初回作成・DB変更時都度作成
Sql2Entity
外だしSQL(OutsideSql)実装時に実行 (Entityの生成)
OutsideSqlTest
外だしSQL(OutsideSql)実装時に実行 (SQLのチェック)

Exampleのススメ

基本的なことを覚えるのにも応用的なことを覚えるのにも最適なのは Example 実装です。

SVNリポジトリ
https://www.seasar.org/svn/sandbox/dbflute
Exampleプロジェクト
dbflute-basic-example
ExampleDBのERD
Example DB

自動生成済み、かつ、DBもセットアップ済み(H2 Databaseの組み込み)なので、SVNチェックアウトしたらすぐにお試し実装ならびにお試し実行(JUnit) ができる状態になっています。また、既に幾つものExample実装があり、プログラムを読むことでおおよその使い方を習得することが可能です。

とりあえず真っ先に見ておくべきクラスは、BehaviorBasicTestConditionBeanBasicTest です。開発中もすぐに参照できるようにしておくことを強くお奨めします。

アーキテクトへの相談

DBFluteでは、ディベロッパーの実装を安全なものに導く様々な全体最適な機能が備わっています。 例えば、DBFluteでは、登録日時や更新ユーザなどのどのテーブルにでも定義されている 共通カラム に対して、登録・更新時に都度都度ディベロッパーがそれらの値を準備して(Entityに)設定するようなことはありません。 また、(ExampleDBでいう)会員ステータスなどの 区分値 を設定したり判定したりするときに、コード値をハードコードするようなことはありません(手動で定数を定義することもありません)。 これらはDBFluteが提供する 現場フィットな機能 で解決されます。

但し、これら機能を利用するためには、多くの場合は事前にDBFluteでの設定が必要です。 もし、実装しているときにこれらの機能が利用できないようであれば(共通カラムの自動設定が行われない、区分値のメソッドが存在しないなど)、 設定漏れがあるかもしれません。そのときは、ぜひアーキテクトに相談してみて下さい。 そもそもその機能を認識していないようであれば、"こういう機能があるのでぜひ使いましょう" と提案するのも良いでしょう。それはディベロッパー自身の実装の助けになるのです。