iOS开发系列--详细介绍数据存取

2020-01-18 17:36:10王旭

KCStatusService.h


//
// KCStatusService.h
// DataAccess
//
// Created by Kenshin Cui on 14-3-29.
// Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "KCSingleton.h"
@class KCStatus;

@interface KCStatusService : NSObject
singleton_interface(KCStatusService)

/**
 * 添加微博信息
 *
 * @param status 微博对象
 */
-(void)addStatus:(KCStatus *)status;

/**
 * 删除微博
 *
 * @param status 微博对象
 */
-(void)removeStatus:(KCStatus *)status;

/**
 * 修改微博内容
 *
 * @param status 微博对象
 */
-(void)modifyStatus:(KCStatus *)status;

/**
 * 根据编号取得微博
 *
 * @param Id 微博编号
 *
 * @return 微博对象
 */
-(KCStatus *)getStatusById:(int)Id;

/**
 * 取得所有微博对象
 *
 * @return 所有微博对象
 */
-(NSArray *)getAllStatus;
@end

KCStatusService.m


//
// KCStatusService.m
// DataAccess
//
// Created by Kenshin Cui on 14-3-29.
// Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//

#import "KCStatusService.h"
#import "KCDbManager.h"
#import "KCStatus.h"
#import "KCUserService.h"
#import "KCSingleton.h"

@interface KCStatusService(){
  
}

@end

@implementation KCStatusService
singleton_implementation(KCStatusService)


-(void)addStatus:(KCStatus *)status{
  NSString *sql=[NSString stringWithFormat:@"INSERT INTO Status (source,createdAt,"text" ,user) VALUES('%@','%@','%@','%@')",status.source,status.createdAt,status.text,status.user.Id];
  [[KCDbManager sharedKCDbManager] executeNonQuery:sql];
}

-(void)removeStatus:(KCStatus *)status{
  NSString *sql=[NSString stringWithFormat:@"DELETE FROM Status WHERE Id='%@'",status.Id];
  [[KCDbManager sharedKCDbManager] executeNonQuery:sql];
}

-(void)modifyStatus:(KCStatus *)status{
  NSString *sql=[NSString stringWithFormat:@"UPDATE Status SET source='%@',createdAt='%@',"text"='%@' ,user='%@' WHERE Id='%@'",status.source,status.createdAt,status.text,status.user, status.Id];
  [[KCDbManager sharedKCDbManager] executeNonQuery:sql];
}

-(KCStatus *)getStatusById:(int)Id{
  KCStatus *status=[[KCStatus alloc]init];
  NSString *sql=[NSString stringWithFormat:@"SELECT Id, source,createdAt,"text" ,user FROM Status WHERE Id='%i'", Id];
  NSArray *rows= [[KCDbManager sharedKCDbManager] executeQuery:sql];
  if (rows&&rows.count>0) {
    [status setValuesForKeysWithDictionary:rows[0]];
    status.user=[[KCUserService sharedKCUserService] getUserById:[(NSNumber *)rows[0][@"user"] intValue]] ;
  }
  return status;
}

-(NSArray *)getAllStatus{
  NSMutableArray *array=[NSMutableArray array];
  NSString *sql=@"SELECT Id, source,createdAt,"text" ,user FROM Status ORDER BY Id";
  NSArray *rows= [[KCDbManager sharedKCDbManager] executeQuery:sql];
  for (NSDictionary *dic in rows) {
    KCStatus *status=[self getStatusById:[(NSNumber *)dic[@"Id"] intValue]];
    [array addObject:status];
  }
  return array;
}
@end