iphone数据库的增删改查

 

#import "DataBaseOperate.h"


@implementation DataBaseOperate
@synthesize databaseName;


#pragma mark #
#pragma mark DataBase Operate
/*********************************************************************
 函数名称: init
 函数描述: 初始化数据库操作 : 打开数据库
 输入参数: NULL
 输出参数: N/A
 返回值  : self
 作   者: 缪小峰
 修改者  :
 备   注: 数据库 的 关闭在调用方法时关闭( 操作者调用 [XXX close])
 *********************************************************************/

- (id)init{
 [super init];
 if ([self OpenDataBase]) {
  NSLog(@"database opened success!");
 }else {
  NSLog(@"database opened fail!");
 }
 return self;
 
}
/*********************************************************************
 函数名称: close
 函数描述: 关闭数据库
 输入参数: NULL
 输出参数: N/A
 返回值  : void
 作   者: 缪小峰
 修改者  :
 备   注: 数据库 的 关闭
 *********************************************************************/
- (void)close{
 sqlite3_close(database);
}
- (void)dealloc{
 self.databaseName=nil;
 [databaseName release];
 [super dealloc];
}
/*********************************************************************
 函数名称: OpenDataBase
 函数描述: 打开数据库
 输入参数: NULL
 输出参数: bool
 返回值  : BOOL
 作   者: 缪小峰
 修改者  :
 备   注 : 打开数据库
 *********************************************************************/
-(BOOL)OpenDataBase
{
 此处为数据库文件名
 NSArray *documentpaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentDir=[documentpaths objectAtIndex:0];
 NSString *databasePath=[documentDir stringByAppendingPathComponent:databaseName];
 NSFileManager *fileManager=[NSFileManager defaultManager];
 BOOL success=[fileManager fileExistsAtPath:databasePath];
 if (!success) {
  NSString *databasePathFromApp=[[[NSBundle  mainBundle]resourcePath]stringByAppendingPathComponent:databaseName];
  [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
 }
 
 if (sqlite3_open([databasePath UTF8String],&database)==SQLITE_OK)
 {
  return YES; 
 }
 else
 {
  return NO;
 }
 
}

 

#pragma mark #
#pragma mark DataBase bookinfo Operate
/*********************************************************************
 函数名称: Insert_book
 函数描述: 插入
 输入参数: id--------------[插入对象]
 输出参数:
 返回值  : NSInteger-------[返回插入执行的结果,是否成功]
 作   者: 缪小峰
 修改者  :
 备   注 :
 *********************************************************************/
-(NSInteger)Insert_book:(id)anObject{
 if (anObject==nil) {
  return RETURN_TYPE_FAIL;
 }
 BookInfo * _bookinfo=[[BookInfo alloc]init];
 BookInfo * bookinfo = (BookInfo*)anObject;
 
 
 
 //bookName;   //书本名称
 if (bookinfo.bookName==nil) {
  _bookinfo.bookName=@"";
 }
 else {
  _bookinfo.bookName=bookinfo.bookName;
 }
 NSString *sqlSateMent=[[NSString alloc]initWithFormat:@" insert into book ( bookName) values (

'%@')",_bookinfo.bookName];
 
 char *errmsg=NULL;
 [_bookinfo release];
 
 if (sqlite3_exec(database, [sqlSateMent UTF8String], 0, nil, &errmsg) != SQLITE_OK) {
  NSLog(@"%@",[NSString stringWithFormat:@"insert %@ fail:%@",listname,sqlSateMent]);
  [sqlSateMent release];
  return RETURN_TYPE_FAIL;
 }
 [sqlSateMent release];
 NSLog(@"%@",[NSString stringWithFormat:@"insert %@ success!",listname]);
 return RETURN_TYPE_SUCCESS;
 
}
/*********************************************************************
 函数名称: Update_bookinfo
 函数描述: 更新书本信息
 输入参数: id--------------[插入对象]
 输出参数:
 返回值  : NSInteger-------[返回插入执行的结果,是否成功]
 作   者: 缪小峰
 修改者  :
 备   注 :
 *********************************************************************/
-(NSInteger)Update_bookinfo:(id)anObject{
 if (anObject==nil) {
  return RETURN_TYPE_FAIL;
 }
 BookInfo * bookinfo = (BookInfo *)anObject;
 
 
 NSString *sqlSateMent=[[NSString alloc]initWithFormat:@" update  book set bookName='%@'", bookinfo.bookName];
 
 
 char *errmsg=NULL;
 if (sqlite3_exec(database, [sqlSateMent UTF8String], 0, nil, &errmsg) != SQLITE_OK) {
  NSLog(@"%@",[NSString stringWithFormat:@"update %@ fail:%@",listname,sqlSateMent]);
  [sqlSateMent release];
  return RETURN_TYPE_FAIL;
 }
 NSLog(@"%@",[NSString stringWithFormat:@"update %@ success!",listname]);
 [sqlSateMent release];
 return RETURN_TYPE_SUCCESS;
}
/*********************************************************************
 函数名称: Delete_By
 函数描述: 条件删除
 输入参数: NSString--------------[删除条件]
 输出参数:
 返回值  : NSInteger-------[返回删除执行的结果]
 作   者: 缪小峰
 修改者  :
 备   注 :
 *********************************************************************/
-(NSInteger)Delete_By:(NSString *)where {
 
 NSString *sqlSateMent=[[NSString alloc]initWithFormat:@" delete from book where %@",where];
 char *errmsg=NULL;
 if (sqlite3_exec(database, [sqlSateMent UTF8String], 0, nil, &errmsg) != SQLITE_OK) {
  NSLog(@"%@",[NSString stringWithFormat:@"delete  %@ fail:%@",listname,sqlSateMent]);
  [sqlSateMent release];
  return RETURN_TYPE_FAIL;
 }
 NSLog(@"%@",[NSString stringWithFormat:@"delete   %@ success!:%@",listname,where]);
 [sqlSateMent release];
 return RETURN_TYPE_SUCCESS;
}


/*********************************************************************
 函数名称: GetListBy_bookinfo
 函数描述: 条件检索
 输入参数: NSString--------------[检索条件]
 输入参数: NSString-------[返回集合的排序规则]
 输出参数:
 返回值  : NSArray-------[返回检索的结果]
 作   者: 缪小峰
 修改者  :
 备   注 :
 *********************************************************************/
-(NSArray *)GetListBy_bookinfo:(NSString *)where Order:(NSString *)srot {
 //define return value
 NSMutableArray *bookInfoArr=[[[NSMutableArray alloc] init] autorelease];
 
 
 //generate search SQL
 NSString * sqlStateMent;
 
 NSString * _sqlhead ;
 if ([where length]>0) {
  _sqlhead=[[NSString alloc]initWithFormat:@"  select * from book where %@",where];
 }else {
  _sqlhead=[[NSString alloc]initWithFormat:@"  select * from book  "];
 }
 
 
 sqlStateMent=[_sqlhead stringByAppendingString:srot];
 [_sqlhead release];
 
 
 
 sqlite3_stmt *complitedSateMent;
 //exec SQL
 if (sqlite3_prepare_v2(database,[sqlStateMent UTF8String],-1,&complitedSateMent,NULL)==SQLITE_OK) {
  while (sqlite3_step(complitedSateMent)==SQLITE_ROW) {
   
   BookInfo * bookinfo = [[BookInfo alloc] init];
   
   

   //书本名称
   if ((char *)sqlite3_column_text(complitedSateMent,0 )==nil) {
    bookinfo.bookName=@"";
   }
   else {
    bookinfo.bookName=[NSString stringWithUTF8String:(char *)sqlite3_column_text(complitedSateMent,0 )];
   }
   
   //Data Package   
   
   [bookInfoArr addObject:bookinfo];
   [bookinfo release];
   bookinfo = nil;
   
   
   
  }
  //finalize stmt  
  sqlite3_finalize(complitedSateMent);
 }
 
 
 
 //end & return value
 return bookInfoArr;
}
/*********************************************************************
 函数名称: GetExistBy_bookinfo
 函数描述: 检索该对象是否存在
 输入参数: id--------------[插入对象]
 输出参数:
 返回值  : NSInteger-------[返回插入执行的结果,0/1]
 作   者: 缪小峰
 修改者  :
 备   注 :
 *********************************************************************/
-(NSInteger)GetExistBy_bookinfo:(id)anObject {
 NSInteger retResult=0;
 BookInfo *_bookinfo=(BookInfo *)anObject;
 NSString *sqlStateMent=[[NSString alloc]initWithFormat:@" select count(bookName) from book where bookName='%@' ",_bookinfo.bookName];
 sqlite3_stmt *complitedSateMent;
 //exec SQL
 if (sqlite3_prepare_v2(database,[sqlStateMent UTF8String],-1,&complitedSateMent,NULL)==SQLITE_OK) {
  while (sqlite3_step(complitedSateMent)==SQLITE_ROW) {
   retResult=sqlite3_column_int(complitedSateMent,0);
   break;
  }
 }
 [sqlStateMent release];
 sqlite3_finalize(complitedSateMent);
 return retResult;
}
@end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值