開発部だより 第160回
こんにちは!
最近は暑さを言い訳に、ビール飲みまくりーの、フトリーノ。ijです。
今回はオブジェクトリレーショナルマッピング (以降、ORM)フレームワークが、ColdFusionでも、バージョン9から機能として使えるようになっているので、一つのテーブルから全件取得する簡単な例で、試してみたいと思います。
今回データを取得するテーブル
それでは、ORMで全件を取得してみます。
手順.1
Application.cfcにORMの設定を行う。
[Application.cfc]
<cfcomponent>
<cfset this.name = "ORM_TEST" />
<!--- ORMを有効にする --->
<cfset this.ormenabled = "true" />
<!--- ORMで使用するデータソースを指定 --->
<cfset this.datasource = "SATT" />
</cfcomponent>
手順.2
ORMマッピングの定義を行う。
今回はCFCを使って定義してみます。
*JavaでおなじみのHibernate形式のマッピングファイル (.hbmxml)でも定義できます。
[user_master.cfc]
<!--- CFCでマッピングファイルを定義する場合、persistent="true" に --->
<cfcomponent persistent="true">
<!--- cfpropertyでテーブルの各カラムをプロパティとしてマッピング --->
<cfproperty name="user_id" fieldtype="id" />
<cfproperty name="user_name" />
<cfproperty name="entry_date" />
<cfproperty name="change_date" />
</cfcomponent>
手順.3
データを全件取得します。
<cfset userMaster = EntityLoad("user_master") />
<cfdump var="#userMaster#" />
結果はオブジェクトを格納した配列が返されます。
*マッピングの定義を変更した場合、自動的にはロードされませんので、
ApplicationStop()で、アプリケーションを再起動するか、ORMReload()を呼び出す必要があります。
比較の為に、今度は<cfquery>で全件を取得してみます。
<cfquery name="userMaster" datasource="SATT">
SELECT
user_id,
user_name,
entry_date,
change_date
FROM
user_master
</cfquery>
<cfdump var="#userMaster#" />
当然ですが、結果はクエリが返されます。
いかがでしたでしょうか。
ColdFusionでも手軽にORMが使用できるようになった事がお分かりいただけたかと思います。
Adobe ColdFusion 10:ColdFusion ORMそれでは、また!