码迷,mamicode.com
首页 > 移动开发 > 详细

iOS数据库SQLite基本操作

时间:2015-08-18 21:09:55      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

数据库操作几点建议:

  1. 注意sql执行语句的字符串的拼写。(一定要注意拼写,深受其害  T_T  )

  2. Obj-C中SQLite常用函数。

    (没几个,sqlite3_open,sqlite3_close,sqlite3_exec,sqlite3_perpare_v2,sqlite3_step,sqlite3_column_*,……)(外加两个对象:sqlite,sqlite_stmt)

  3. SQLite语法。(一般的数据库操作都一样)

  4. 如果做大一点的项目的话,数据库操作还是尽可能的封装吧。

  5. 善用搜索。(没少走弯路)

 

废话不多说,代码加注释:

    //数据库路径

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

    NSString *documentsDir = [paths objectAtIndex:0];

    NSString *filePath = [documentsDir stringByAppendingPathComponent:@"test3.sqlite"];

 

    //打开数据库

    if (sqlite3_open([filePath UTF8String], &database) != SQLITE_OK)

    {

        NSLog(@"打开数据库失败");

    }

 

    //数据执行操作封装,不想封装直接用sqlite3_exec函数

    //sqlite3_exec返回枚举值(整形),可以执行创建表,插入,删除,更新等操作

    - (int)execSql:(NSString*)sql

    {

        char *errmsg;

        if (sqlite3_exec(database, [sql UTF8String], nil, nil, &errmsg) != SQLITE_OK) {

            NSLog(@"数据库操作失败!");

            NSLog(@"%s", errmsg);

            return SQLITE_ERROR;

        }

        return SQLITE_OK;

    }

    

    //调用封装后的方法创建数据库

    NSString *createTableHistory = @"create table if not exists atable(id integer primary key autoincrement, acolumn nvarchar(20) not null);";

    [self execSql:createTableHistory];

 

    //数据库查询,(待封装)

    thing = [[NSMutableArray alloc] init];

    NSString *selectSql = @"select * from atable";

    sqlite3_stmt *statement;

    if (sqlite3_prepare_v2(database, [selectSql UTF8String], -1, &statement, nil) == SQLITE_OK) {

        while (sqlite3_step(statement) == SQLITE_ROW) {

            //nvarchar类型查询出来是char*,赋值给NSString的话需要转换,

            //注意,这里是第1列,列数是从第0列开始的

            //如果要查询多个字段,如学生信息,可以把学生封装成一个类,然后把该类的事例一个个放到数组里

            [thing addObject:[NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)]];

        }

    }

    else

    {

        NSLog(@"数据查询失败!");

    }

 

    //最后当页面关闭,或程序关闭记得关闭数据库

    sqlite3_close(database);

iOS数据库SQLite基本操作

标签:

原文地址:http://www.cnblogs.com/HermitCarb/p/4740579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!