zoukankan      html  css  js  c++  java
  • iOS数据库操作流程

      SQLite最新的版本是3.0,使用之前应该先导入libsqlite3.0.dylib

      1.导入流程

        

       

      2.iOS中操作数据库的流程

        打开数据库

        准备SQL数据库

        执行SQL数据库

        语句完结

        关闭数据库

      3.SQLite()使用的是C的函数接口

        

      4.创建数据库

      

    -(void)createSQL{
        
        NSFileManager *manager = [NSFileManager defaultManager];
        
        if ([manager fileExistsAtPath:kDataBaseFilePath]) {
            NSLog(@"数据库不存在");
            return;
        }
        NSLog(@"%@",kDataBaseFilePath);
        [manager createFileAtPath:kDataBaseFilePath contents:nil attributes:nil];
        
        
        sqlite3 *sql =NULL;
        int openDbResult = sqlite3_open([kDataBaseFilePath UTF8String], &sql);
        
        if (openDbResult==SQLITE_OK) {
            NSLog(@"数据库打开成功");
        }
        else{
        
            NSLog(@"打开不成功");
            
            [manager removeItemAtPath:kDataBaseFilePath error:nil];
            return;
        }
        
        
         NSString *sqlString = @"CREATE TABLE user(id integer PRIMARY KEY AUTOINCREMENT, username text NOT NULL UNIQUE, password text NOT NULL);";
        
        
        
        
        
        char *errmsg = NULL;
        int exeResult = sqlite3_exec(sql, [sqlString UTF8String], NULL, NULL, &errmsg);
        
        if (exeResult == SQLITE_OK) {
            NSLog(@"表格成功被创建");
            
        }
        else{
        
            NSLog(@"失败");
            sqlite3_close(sql);
            [manager removeItemAtPath:kDataBaseFilePath error:nil];
            return;
        }
        sqlite3_close(sql);
        
        
    
        
        
    }
    
      5.数据库的插入数据库

       

    -(void)createSQL{
        
        NSFileManager *manager = [NSFileManager defaultManager];
        
        if ([manager fileExistsAtPath:kDataBaseFilePath]) {
            NSLog(@"数据库不存在");
            return;
        }
        NSLog(@"%@",kDataBaseFilePath);
        [manager createFileAtPath:kDataBaseFilePath contents:nil attributes:nil];
        
        
        sqlite3 *sql =NULL;
        int openDbResult = sqlite3_open([kDataBaseFilePath UTF8String], &sql);
        
        if (openDbResult==SQLITE_OK) {
            NSLog(@"数据库打开成功");
        }
        else{
        
            NSLog(@"打开不成功");
            
            [manager removeItemAtPath:kDataBaseFilePath error:nil];
            return;
        }
        
        
         NSString *sqlString = @"CREATE TABLE user(id integer PRIMARY KEY AUTOINCREMENT, username text NOT NULL UNIQUE, password text NOT NULL);";
        
        
        
        
        
        char *errmsg = NULL;
        int exeResult = sqlite3_exec(sql, [sqlString UTF8String], NULL, NULL, &errmsg);
        
        if (exeResult == SQLITE_OK) {
            NSLog(@"表格成功被创建");
            
        }
        else{
        
            NSLog(@"失败");
            sqlite3_close(sql);
            [manager removeItemAtPath:kDataBaseFilePath error:nil];
            return;
        }
        sqlite3_close(sql);
        
        
    
        
        
    }
    

      

  • 相关阅读:
    RabbitMQ笔记-基础知识
    什么是HashMap【转】
    Mysql笔记-查询缓存
    Redis笔记-配置文件
    Autofac-.net core控制台使用依赖注入【转】
    布隆过滤器(c#简单实现)【转】
    Redis笔记-布隆过滤器组件
    StackExchange.Redis笔记-分布式锁
    StackExchange.Redis笔记-发布订阅
    StackExchange.Redis笔记-性能调优【转】
  • 原文地址:https://www.cnblogs.com/Moshimol/p/5697053.html
Copyright © 2011-2022 走看看