SQLite基本操作—–IOS(如有雷同,纯属巧合)

sqlite3_stmt      *stmt,
这多少个一定于ODBC的Command对象,用于保存编译好的SQL语句
sqlite3_open(),   打开数据库,没有数据库时创设。
sqlite3_exec(),   执行非查询的sql语句
Sqlite3_step(),
在调用sqlite3_prepare后,使用这一个函数在笔录集中活动。
Sqlite3_close(), 关闭数据库文件
还有一雨后春笋的函数,用于从记录集字段中获取数据,如
sqlite3_column_text(), 取text类型的多少。
sqlite3_column_blob(),取blob类型的多寡
sqlite3_column_int(), 取int类型的数量

 

二、创建表

 

3、查询数据

 sqlite3 *sqlDataBase;

-(BOOL)createOrOpen:(NSString *)dbName

{

    //获取用户域覆径信息

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    /**

     *Users/admin/Library/Application Support/iPhone Simulator/7.1/Applications/8E23557E-AAA6-471A-AAFE-E036BF1B7E4C/Library/Documentation

     *判断用户域是否有数据库dbNmae

     */

    NSString *path = [documentsDirectory stringByAppendingPathComponent:dbName];

    NSFileManager *fileManageer = [NSFileManager defaultManager];

    //如果用户域内有该数据库,则返回yes,否则返回NO

    BOOL find = [fileManageer fileExistsAtPath:path];

    if(find)   //对找到进行处理,如果找到了,并且打开了,则返回yes

    {

        //打开该数据库,如果打开失败,则返回NO,否则返回yes

        if(sqlite3_open([path UTF8String], &sqlDataBase)!= SQLITE_OK)

           {

               //关闭sqlDataBase,实际是释放了它

               sqlite3_close(sqlDataBase);

               return NO;

           }

           return YES;

    }



    NSLog(@"%d",sqlite3_open([path UTF8String], &sqlDataBase));

           //创建数据库,创建返回yes,并且打开数据库,否则返回NO

    if(sqlite3_open([path UTF8String], &sqlDataBase)==SQLITE_OK)

    {

        return YES;

    }else

    {

     //关闭sqlDataBase,实际是释放了它

        sqlite3_close(sqlDataBase);

        return NO;

    }







    return NO;



}

三、相关代码

sqlite,2、插入数据

施行创设的时多拔取sqlite3_step

 

//向表中插入数据

-(void)insertMBkey:(NSString *)key

{

    BOOL isOK = NO;

    sqlite3_stmt *statement;

    static char *sql = "INSERT INTO user VALUES ('1', 'Bill', '河南', 'ssss','2')";

    int success = sqlite3_prepare_v2(sqlDataBase, sql, -1, &statement, NULL);

    if(success !=SQLITE_OK)

    {

        isOK = NO;

    }else

    {

        sqlite3_bind_text(statement, 1, [key UTF8String], -1, SQLITE_TRANSIENT);

        success = sqlite3_step(statement);

        sqlite3_finalize(statement);

    }



    if(success ==SQLITE_ERROR)

    {

        isOK = NO;

    }else

    {

        isOK=YES;

    }



    return;

}

1、打开或者创建数据库

sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似

一、常用方法

 

 

 

创造表的时候需要预处理和施行创立六个经过

 

//查询数据

-(void)GetList:(NSMutableArray *)KeysList

{

    BOOL  isOK = NO;

    sqlite3_stmt *statement;

    static char *sql = "select id,address from user";

    int success = sqlite3_prepare_v2(sqlDataBase, sql, -1, &statement, NULL);

    if(success !=SQLITE_OK)

    {

        isOK = NO;

    }else

    {

        //查询结果集中一条一条地遍历所有记录,这里的数字对应的时列值

        while (sqlite3_step(statement)==SQLITE_ROW) {

            int kid = sqlite3_column_int(statement, 0);

            char *key = (char  *)sqlite3_column_text(statement, 1);

            UserInfo *userModel = [[UserInfo alloc] init];



                userModel.userId =kid;

            if (key) {

              userModel.userAddress = [NSString stringWithUTF8String:key];

            }

                [KeysList addObject:userModel];

            sqlite3_finalize(statement);

        }

        NSLog(@"%@",KeysList);

        if(success==SQLITE_ERROR)

        {

            isOK = NO;

        }else

        {

            isOK = YES;

        }

        return;

    }

}
网站地图xml地图