[Seasar-user:11833] Re: 【 DBFlute 】生成コードと DB 要素のネーミングの対応関係について

kubo [E-MAIL ADDRESS DELETED]
2007年 11月 28日 (水) 17:30:05 JST


久保です。

佐藤さん、こんにちは

> DBFluteで生成するコードの命名規則について
> 質問させてください。
> 
> テーブル名、列名が
> 
>  日本語_テーブル
>  日本語_列
> 
> のような名前の時に、DBFluteにて生成される
> ソース類では
> 
>  xxxx日本語テーブル
>  xxxx日本語列
> 
> のようになると思います。("_"は削除される)
> こうした命名規則を記載した資料などありますでしょうか?
> (S2DAOの資料かもしれません)

すいません、少なくともDBFluteのサイト上には資料は今のところないです。
いずれしっかりしたものを作りたいとは思いますが、
取り急ぎ記述いたします。

例えば、
  MEMBER_STATUS というテーブル
  MEMBER_STATUS_NAME というカラムがある場合


- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
データベース       → Javaのプロパティ / C#のプロパティ

MEMBER_STATUS      → memberStatus / MemberStatus
MEMBER_STATUS_NAME → memberStatusName / MemberStatusName
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

というように"_"は削除されます。
但し、Javaにおいて、M_STATUS というテーブルもしくはカラムの場合は、
JavaBeans規約に従い「mStatus」ではなく「MStatus」になります。

これらは、S2Daoでも全く同じです。
(というかDBFluteはS2Daoの規約に合わせています)



そして関連情報ですが、もしデータベース側が"_"区切りでない場合は、
デフォルトでは以下のようになってしまいます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
データベース       → Javaのプロパティ / C#のプロパティ

MemberStatus       → memberstatus / Memberstatus
MemberStatusName   → memberstatusname / Memberstatusname
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

動作上の問題はありませんが、何かとやりづらいと思われるので、
DBFluteでは、build-xxx.propertiesに以下のプロパティを設定すると、
特に変換を掛けずに自動生成します。

- - - - - - - - - - - - - - - - - - - - - - - - 
# テーブルの名前とプログラム上の名前とが同じか否か
torque.isJavaNameOfTableSameAsDbName = true

# カラムの名前とプログラム上の名前とが同じか否か
torque.isJavaNameOfColumnSameAsDbName = true
- - - - - - - - - - - - - - - - - - - - - - - - 

すると以下のようになります。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
データベース       → Javaのプロパティ / C#のプロパティ

MemberStatus       → memberStatus / MemberStatus
MemberStatusName   → memberStatusName / MemberStatusName
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -




Seasar-user メーリングリストの案内