RDBなしのとき...DBFluteは?
概要
そのときのDBFluteの役割
RDBにアクセスしないアプリで LastaFlute を使う時は、DBFluteは以下のような扱いになります。
- Runtime
- LastaFluteやMailFluteがライブラリとして使う
- FreeGen
- LastaFluteでふんだんに使っているのでガンガン使う
- JDBC
- DocのためにJDBCが必要、ただしちょっと一工夫必要 (後述)
- Doc
- PropertiesHTMLを生成するために使う
なので、DBFlute Runtime も DBFlute Client も DBFlute Engine も一通り必要であることには変わりません。
ただ、JDBC, Docタスクを叩くためにちょっとだけ一工夫が必要です。
叩くDBFluteタスク
JDBC(21), Doc(22), FreeGen(12) を叩きます。
e.g. jdbc, doc, freegen @Command
...$ manage.sh 21,22,12
FreeGen はディベロッパーがよく叩きますが、JDBC, Doc は叩くタイミングがありません。 普段はクラスの自動生成のタイミングで自然と叩かれますが、それがないので明示的に誰かが思いついて叩かないといけません。 思いつきましょう。
Docタスクのための一工夫
RDBがない状態でDocタスクを叩くために、ちょっと一工夫が必要です。
basicInfoMap.dfprop
database を H2 database にします。(ダミースキーマのために)
e.g. set h2 to database @basicInfoMap.dfprop
; database = h2
databaseInfoMap.dfprop
インメモリのダミースキーマ (dummydb) を定義します。
e.g. set h2 to database settings @databaseInfoMap.dfprop
; driver = org.h2.Driver
; url = jdbc:h2:mem:dummydb
; schema =
; user = dummydb
; password = dummydb
additionalTableMap.dfprop
ダミーテーブルをひとつだけ additionalTable として定義します。
additionalTableMap.dfprop を作成して...
e.g. make additionalTableMap.dfprop in dfprop @Directory
dfprop
|-additionalTableMap.dfprop
|-basicInfoMap.dfprop
|-databaseInfoMap.dfprop
以下の内容を記載します。(JDBCタスクは、テーブルが一つ必要なため)
e.g. define dummy table @additionalTableMap.dfprop
# /---------------------------------------------------------------------------
# additionalTableMap: (NotRequired - Default map:{})
#
# This property is valid at only JDBC task.
# You should use this when JDBC can not provide table information
# and when you have no table but call stored procedures only.
#
# The element 'columnMap' is only required in table elements.
# The element 'type' is only required in column elements.
#
# Specification:
# map: {
# [table-name] = map:{
# columnMap = map:{
# [column-name] = map:{
# type = [column JDBC type] ; dbType = [column DB type]
# ; required = [true or false] ; size = [column size]
# ; primaryKey = [true or false] ; pkName = [PK constraint name]
# ; autoIncrement = [true or false]
# ; default = [default value] ; comment = [column comment]
# }
# }
# ; comment = [table comment]
# }
# }
#
# *The line that starts with '#' means comment-out.
#
map:{
; DUMMY_MEMBER = map:{
; columnMap = map:{
; DUMMY_ID = map:{
; type = INTEGER ; dbType = INTEGER
; required = true ; primaryKey = true ; autoIncrement = true
}
; DUMMY_NAME = map:{ type = VARCHAR ; required = true ; size = 123 }
; DUMMY_DATE = map:{ type = DATE }
}
}
}
# ----------------/
#
# *Refer to typeMappingMap.dfprop for JDBC type reference.
その他いろいろ空っぽに
必須ではありませんが、何か入ってると動かない可能性もあるので空っぽにしておきましょう。
- classificationDefinitionMap.dfprop
- map:{} に
- classificationDeploymentMap.dfprop
- map:{} に
- commonColumnMap.dfprop
- map:{} に
- playsqlディレクトリ
- ディレクトリだけにして.gitkeep