ページの先頭行へ戻る
Interstage Mobile Application Server V1.2.0 アプリケーション開発ガイド
FUJITSU Software

4.6.2 データの格納および取得

SLSにデータを格納、および取得する事ができます。格納されたデータはキーおよび値ともに暗号化されて格納され、取得時にはデータは復号化されます。格納されるデータサイズは2GBを上限に、カスタマイズする事ができます。詳細は、F.5.12 sls.maxDatabaseSizeを参照してください。以下は、認証モードの例です。


使用例
Android
     LoginInfo loginInfo = LoginData.getInstance().mLoginInfo;
     if (loginInfo != null) {
         if (loginInfo.getUser() != "") {
             try {
                 DataManagerDirect dm = new DataManagerDirect(getApplicationContext(),
                                                              loginInfo.getUser(),
                                                              loginInfo.getPwd().getBytes());
                 dm.put("キー名", "値");
             } catch (IMAPSSlsException e) {
                 // 例外処理.
             } catch (IllegalArgumentException e) {
                 // 例外処理
             } catch (SQLiteFullException e) {
                 // 例外処理
             }
             try {
                 DataManagerDirect dm = new DataManagerDirect(getApplicationContext(),
                                                              loginInfo.getUser(),
                                                              loginInfo.getPwd().getBytes());
                 String value = dm.get("キー名");
             } catch (IMAPSSlsException e) {
                 // 例外処理.
             } catch (IllegalArgumentException e) {
                 // 例外処理
             }
         }
     }
iOS
- (void)func
{
    NSError *anError = nil;
    IMALoginInfo *loginInfo = [[IMALoginData sharedInstance] loginInfo];
    if (loginInfo != nil) {
        if (![[loginInfo userId] isEqualToString:@""]) {
            NSData *pwdByte = [[loginInfo pwd] dataUsingEncoding:NSUTF8StringEncoding];
            IMADataManagerDirect *manager = [[IMADataManagerDirect alloc] init:[loginInfo userId]
                                                                                 pwdByte:pwdByte
                                                                                 error:&anError];
            BOOL ret = [manager put:@"key" value:@"value" error:&anError];
            if (ret == YES) {
                // 成功
            } else {
                // 失敗
            }

            NSString *value = [manager get:@"key" error:&anError];
            if (value != nil) {
                // 成功
            } else {
                // 失敗
            }
        }
    }
}
Windows
    LoginInfo loginInfo = LoginData.getInstance().mLoginInfo;
    if (loginInfo.UserId != null) {
        try
        {
            DataManagerDirect dm = new DataManagerDirect(loginInfo.UserId,
                    Encoding.UTF8.GetBytes(loginInfo.Pwd));
            dm.put("キー名", "値");
        }
        catch (IMAPSSlsException e)
        {
            // 例外処理
        }
        catch (IMAPSSlsKeySizeOverException e) 
        {
            // 例外処理
        }
        catch (IMAPSSlsDbSizeOverException e)
        {
            // 例外処理
        }

        try
        {
            DataManagerDirect dm = new DataManagerDirect(loginInfo.UserId,
                    Encoding.UTF8.GetBytes(loginInfo.Pwd));
            string value = dm.get("キー名");
        }
        catch (IMAPSSlsException e) 
        {
            // 例外処理
        }
        catch (IMAPSSlsKeySizeOverException e) 
        {
            // 例外処理
        }
    }