Sqlite3开发

       sqlite作为IOS开发中一种轻量型关系型数据库,对于大规模数据存储有效.

 1,  开发使用工具sqlite manager :用于观察数据库操作
 2,Linked Frameworks and Libraries包含libsqlite3.dylib库
3,sqlite实现功能:

  - (void)viewDidLoad {
    [super viewDidLoad];

   
    NSArray* arrdic = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* path= [arrdic objectAtIndex:0];
    NSString* datapathlv = [path stringByAppendingPathComponent:@"dataLvfile"];
    sqlite3* datalv ;
    //根据path打开数据库,不存在则创建
int result = sqlite3_open([datapathlv UTF8String], &datalv);
    if (result == SQLITE_OK)
    {
        NSLog(@"DB have open");
        
        
    }
    //创建数据表
    NSString* createSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (TAG INTEGER PRIMARY KEY,FIELD_DATA TEXT);";
    char* errorMsg;
    if(SQLITE_OK != sqlite3_exec(datalv, [createSQL UTF8String], NULL, NULL, &errorMsg))
    {
       
        sqlite3_close(datalv);
        NSLog(@"%s----",errorMsg );
    }
    //插入数据
    char* sqlinset = "insert  or replace into  FIELDS (TAG,FIELD_DATA) VALUES (?,?);";
    sqlite3_stmt * ST ;
   if( sqlite3_prepare_v2(datalv, sqlinset, -1, &ST, nil) == SQLITE_OK)
   {
       sqlite3_bind_int(ST, 1, 9);
     
       sqlite3_bind_text(ST, 2, "HEROLDQ", -1, NULL);
       sqlite3_bind_text(ST, 2, "sky11", -1, NULL);
         sqlite3_bind_int(ST, 1, 16);
   
   
   }
    if (sqlite3_step(ST)!= SQLITE_DONE) {
        NSLog(@"erro");
    }
    sqlite3_finalize(ST);
    
    //查询数据
    NSString* query = @"select  TAG,FIELD_DATA FROM
 FIELDS ORDER BY TAG";
    
    sqlite3_stmt* statement ;
    if (sqlite3_prepare_v2(datalv, [query UTF8String], -1, &statement, nil)
 == SQLITE_OK)
    {
        
        while (sqlite3_step(statement) == SQLITE_ROW)
        {
            int rowNum = sqlite3_column_int(statement, 0);
            char* rowData = (char*)sqlite3_column_text(statement,1);
            NSString* str = [[NSString alloc] initWithUTF8String:rowData];
            NSLog(@"nstring %@",str);
        }
        sqlite3_finalize(statement);
    }
 //直接插入 ,delete
    char* INSET = "INSERT INTO FIELDS VALUES (100,'V4B');";
    sqlite3_exec(datalv, INSET, NULL, NULL, NULL);

   char* del ="delete from FIELDS WHERE TAG = 15;";
    
    sqlite3_exec(datalv, del, NULL, NULL, NULL);


//
//    char* delte = "DELETE FROM FIELDS";
//    sqlite3_exec(datalv, delte, NULL, NULL, NULL);
//    
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值