【はじめての InterSystems IRIS】セルフラーニングビデオ:基本その3:IRIS でクラス定義を作ろう(オブジェクト操作の練習)
IRIS でのクラス定義の作成、ObjectScript でインスタンスの生成と永続化(保存)の方法について解説します。
もくじ
最初~1:55 前回のビデオの学習
1:55~2:45 今回の説明内容解説
2:45~5:15 クラスの種類について
5:15~13:20 作成するクラスの説明、定義説明
13:20~18:44 スタジオでの作成実演
18:44~22:35 VS Codeでの作成実演
22:35~27:40 ObjectScriptでインスタンス生成
27:40~29:38 インスタンス生成~永続化の実演
29:38~34:54 データの確認
34:54~40:13 マルチモデル(永続クラス=テーブル)の確認
40:13~51:25 JSONとXMLアダプタの操作実演
51:25~57:36 クラスメソッドの定義と実行
57:36~最後まで まとめ
※ YouTubeでご覧いただくと「もくじ」の秒数クリックでビデオをジャンプできます。
その他ビデオ一覧は索引ページをご参照ください。
クラス定義例
/// Personクラス
Class Test.Person Extends %Persistent
{
/// 名前
Property Name As %Library.String;
/// メール
Property Email As %Library.String;
ClassMethod CreateEmail(account As %String) As %String
{
if $get(account)=""{
return ""
}
return account_"@mail.com"
}
インスタンス生成~保存までの実行例
インスタンス生成(Test.Personに継承された%New()メソッドを使用)
プロパティに値を割り当てる(文字列は二重引用符で括ります)
set person.Email=”taro@mail.com”
データベースに保存(Test.Personに継承された%Save()メソッドを使用)
保存が成功したかどうかの確認(成功すると 1を返し、失敗すると内部文字列を返します)
保存失敗時のメッセージ確認(システムオブジェクトのStatusクラスを利用します)
CreateEmail()の実行
戻り値がある場合
戻り値がない場合
グローバル変数を直接操作する例
ID=1の Test.Person の名前(Name)とメール(Email)を出力
write $LIST(^Test.PersonD(1),3)
ID=1 の Test.Person の名前(Name)を更新
JSONアダプタの利用例
Test.Person クラスのスーパークラスに %JSON.Adapter クラスを追加する例(追加後、コンパイルが必要です)
JSONオブジェクトを作成し、JSON アダプタを利用して Test.Person の新規インスタンス生成する例
set json.Name="すずき",json.Email="suzuki@mail.com"
set p=##class(Test.Person).%New()
set st=p.%JSONImport(json)
既存オブジェクトをオープンし(例ではID=1をオープン)JSON文字列に変換
set st=p.%JSONExportToString(.moji)
write moji
XMLアダプタの使用例
Test.Person クラスのスーパークラスに %XML.Adapter クラスを追加する例(追加後、コンパイルが必要です)
既存オブジェクトをオープンし(例ではID=1をオープン)XMLに変換
set writer=##class(%XML.Writer).%New()
set writer.Indent=1
set st=writer.RootObject(p)
write st // 1が返れば成功
出力された XML を任意のファイル名で保存し、名前やメールアドレスを編集し、今度は IRIS から XML を Read します。
set file="c:\kit\sample.xml"
set st=reader.OpenFile(file)
write st // 1が返れば成功
読み込んだ XML と Test.Person を関連付けて、Test.Person のインスタンスを生成する
do reader.Next(.obj,.st)
zwrite obj