• IOS开发之数据sqlite使用


    一、引入工具包

      引入工具包libsqlite3.dylib,该工具包为C语言工具包。

    二、代码操作数据库

    1、创建并且链接数据库 

    复制代码
    - (void) _connectDB{
        
     //1>获取沙盒路径作为数据库创建时候的初始化路径
        NSString * path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
        path=[path stringByAppendingPathComponent:@"new.sqlite"];
        NSLog(@"%@",path);
        
    //2>如果存在则打开当前链接,如果不存在则创建
        if(SQLITE_OK==sqlite3_open(path.UTF8String, &sqlite)){
            NSLog(@"数据库创建成功!");
        }else {
            NSLog(@"数据库创建失败!");
        }
        
    }
    复制代码

    2、操作数据库 

    复制代码
    /**
     *  创建表
     */
    
    - (void) _createTable{
    
        NSString *create=@" create table if not exists t_Person (id integer primary key autoincrement,name text,age integer,tel text)";
        [self _execSql:create andTip:@"创建表操作"];
        
    }
    /**
     *  插入数据操作
     *
     *  @param name 姓名
     *  @param age  年龄
     *  @param tel  电话
     */
    
    - (void) _insertName:(NSString *) name andAge:(int )age andTel:(NSString *) tel{
        
        NSString * insert=[NSString stringWithFormat:@" insert into  t_Person(name,age,tel) values('%@',%d,'%@')",name,age,tel];
        [self _execSql:insert andTip:@"插入操作"];
        
    }
    
    /**
     *  执行数据库操作
     *
     *  @param sql 要执行的sql
     *  @param tip 要执行的操作标题
     */
    
    - (void) _execSql:(NSString *) sql andTip:(NSString *) tip{
    
        char * result;
        if(SQLITE_OK==sqlite3_exec(sqlite, sql.UTF8String, NULL, NULL, &result)){
            NSLog(@"%@成功!",tip);
        }else{
            NSLog(@"%@失败!",tip);
        }
    
    }
    复制代码

    3、查询数据库 

    复制代码
    /**
     *  读取数据
     */
    
    - (void)_readData{
        //1> 定义sql语句
        NSString * sql=@"select id,name,age,tel from t_person ";
        
        sqlite3_stmt * stmt=NULL;
        //2> 检查语法的正确性
        if(SQLITE_OK==sqlite3_prepare_v2(sqlite, sql.UTF8String, -1, &stmt, NULL)){
            
        //3> 循环结果集取数据
            while(sqlite3_step(stmt)==SQLITE_ROW){
                //4>注意:取出来数据可以封装到集合中备用
                int ID=sqlite3_column_int(stmt,0);
                const unsigned char *name=sqlite3_column_text(stmt, 1);
                int age=sqlite3_column_int(stmt, 2);
                const unsigned char *tel=sqlite3_column_text(stmt, 3);
                NSString * names=[NSString stringWithUTF8String:(const char *)name];
                NSString * tels=[NSString stringWithUTF8String:(const char *)tel];
                NSLog(@"%d,%@,%d,%@",ID,names,age,tels);
    
            
            }
        
        }
    
    }
  • 相关阅读:
    python ModuleNotFoundError: No module named 'requests' 的 解决方案
    Win环境下如何在cmd运行python文件
    阿里云ECS服务器连接RDS数据库
    mysql5.6采集数据插入出现MySQL server has gone away解决办法
    Ubuntu 18.04 单系统U盘安装
    查看ubuntu系统是32位还是64位,查看系统版本
    Ubuntu 18.04 设置固定的静态ip
    Ubuntu 18.04 新系统 允许root远程登录设置方法
    ubuntu 新系统 使用root用户登录
    Ubuntu 18.04远程登录服务器--ssh的安装和配置
  • 原文地址:https://www.cnblogs.com/tangshiguang/p/6753650.html
Copyright © 2020-2023  润新知