0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DBFlute, H2殴り書き

0
Posted at

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
DBFluteのまとめ
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
★概要
リーン・スタートアップ&インクリメンタル開発

設計しながら実装する開発 (納期の短い開発)

■以下の機能を自動化
・O/Rマッパー 自動生成ドリブン
 ⇒DBのテーブル構造をもとにEntityクラスが自動生成される。

・DB管理支援ツール DB寛容開発自動化

変更に強い!に特化したフレームワーク

★登場人物
各クラスとその役割について記載
【Beheiver クラス (Bhv)】-------------------------------------------------------------------
 DBアクセスを担当するクラス
 DTOに相当する。
 ConditionBean, 外だしSQL等を呼び出す。
 Generateタスクにより1テーブルごとに1クラス自動生成される。
 クラスはEntity名 + Bhv
 DIにより利用可能
 
 〇メソッド一覧
  http://dbflute.seasar.org/ja/manual/function/ormapper/behavior/index.html#about

【ConditionBean クラス (CB)】-------------------------------------------------------------------
 タイプセーフにSQLを組み立てるクラス
 JPQLに相当?
 Generateタスクにより1テーブルごとに1クラス自動生成される。
 
 〇ConditionBean要素の一覧
  http://dbflute.seasar.org/ja/manual/function/ormapper/conditionbean/about.html#abbreviation
 〇ひとめでConditionBean
  http://dbflute.seasar.org/ja/manual/function/ormapper/conditionbean/hitomecb.html

【外だしSQL】
 SQLを外部ファイルに定義すること。
 2Way-SQL(アプリからでもツールからでも動作できる。テストしやすい)
 SQL変更に強い(必要なクラスが自動生成してくれるらしい。)
 ・次を自動生成する。(ParameterBean,Entity)
 ・Sql2EntityタスクによりParameterBeanEntityクラスを作成する。
 
 参考
 〇外だしSQLの使い方
 ・http://dbflute.seasar.org/ja/manual/function/ormapper/outsidesql/howto.html

【ParameterBeanクラス (pmb)】
 ・SQLのバインド変数を一つのオブジェクトとしたクラス
 ・Sql2Entityタスクにより自動生成される。
 ・外だしSQLへのパス情報を内部で保持する。

★セットアップ作業
DBFluteの各タスクを超簡単にまとめる。
 〇Manageタスクの実行
 http://dbflute.seasar.org/ja/manual/function/generator/task/manage/index.html#about

 〇DBFluteタスク
  http://dbflute.seasar.org/ja/manual/function/generator/task/index.html

 Manage.bat (引数 1)を実行するとどうなるか?
 ⇒様々な他タスクが実行される。(Renewalタスク)
  RelplaceSchema : スキーマの再作成, テストデータの一括登録(データはcsv等のファイルから読み込まれる。(playsql/data/common/xxxに格納)
  JDBC : 実際のDBからスキーマ情報を取得する。
  Doc : 取得したスキーマをもとにテーブル定義初に相当するHTMLファイルを作成する。(output->doc->schema-XXX.html)
  Generate : 取得したスキーマをもとに(Behavior,ConditionBean)などのクラスが作成される。
  OutsideSqlTest : すべての外だしSQLを実行し整合性チェックをする。
  必ずロールバックが走るのでUPDATE文があっても問題ない。
  Sql2Entity : 外だしSQLからEntity, ParameterBean,BehaviorQueryPath等の関連クラスが作成される。

 開発者として、どのタスクをどのタイミングで実行すべき?
 外だしSQLを修正 ⇒ Sql2Entity,OutsideSqlTestタスクを実行
 テストデータ追加・変更 ⇒ ReplaceSchema

呼び出し順序
Controller

Logic

result = Bhv(CB)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
H2のまとめ
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
H2 Data Engineというのが正式名称

embedded (はめ込まれた、埋め込まれた)

〇インストール~ログインまで
・インストーラをダウンロードし、解凍する。
・H2 Console を立ち上げる。
・「http://localhost:8082」でbrowserを開く
・H2はデータベースが未作成の場合、自動で作成してくれるらしいが自分の場合は
TestConnection時下記エラー (エラーコード 90146)
Database "C:/Users/{Username}/test" not found, and
IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146 (Help)
対策として手動でDBを作成する。
タスクバーから「H2 Database Engine」を選択し、右クリック「Create a new database」
パスワードを設定して作成。

〇接続URLの記述方法
http://h2database.com/html/cheatSheet.html

jdbc:h2:./test
・jdbc:h2:までは固定の記載
・./ カレントディレクトリは「H2のインストールディレクトリ/bin」
・~/ ホームディレクトリはC:\User{UserName}
・testはDBファイル「test.mv.db」を指す。

〇H2とはなんぞや
file:///D:/100_Tools/100_Program/200_Business/H2DatabaseEngine/H2/docs/html/quickstart.html
 <データベースとしてのH2>
 ・H2では「.mv.db」という拡張子のファイルでDBの情報を保持する。
 ・SQLの記述もH2独自のものが用意されている(公式リファレンス参照)
 <DBMSとしてのH2>
 ・H2コンソールはブラウザ上でDBへの操作が可能。
 ・ローカル,サーバともに接続可能。
 ・JDBC_APIがサポートされたDBであれば接続可能(H2, Oracle, Postgle etc...)
 <JDBCとしてのH2>
 ・自身(H2)もJDBC_APIをサポートしている。
 <組み込みモードとサーバモード>
 ・組み込みモードはローカルのDBへアクセス
  サーバモードは別PCのDBへアクセスする。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
O/Rマッパー
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
DB上のデータとアプリケーション(Java)のデータを
自動変換してくれるための機構。

DBFluteの特徴
・JDBCにのみ依存

http://tamata78.hatenablog.com/entry/2016/06/07/202046
http://taktos.hatenablog.com/entry/2014/08/15/DBFlute%E3%82%92%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%A0%E3%81%91%E7%B0%A1%E5%8D%98%E3%81%AB%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B

SpringとDB周りのまとめ

■データソースとは
・DBへの接続情報に相当するリソース
・DIコンテナで管理される。

■データソースの種類は3つ
・Springやサードパーティが提供するデータソースを利用。
・アプリケーションサーバ側で定義したデータソースをJNDI経由で取得し利用。
・組み込みデータベース(H2など)をデータソースとして利用する。
アプリケーション起動時にDBの構築及びデータソースの設定がされる。
(逆に言うとアプリケーション終了ごとにDBが破棄されるため、
あらかじめDDLや登録用データが必要。)
開発時は利用されるが、本格的なアプリにはあまり利用されない。 --- こっちを利用。

■Spring JDBC
SQLの内容に依らず共通処理を行う。
・コネクション管理
・SQL実行
・例外ハンドリング

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?