IOS第三十一天——在IOS开发中操作sqlite3

来源:互联网 发布:常州 软件企业排名 编辑:程序博客网 时间:2024/05/18 18:43

最近各种闹心了啊,工作的事儿,还有一些私人的原因,然后变得有点儿懒了,今天仔细想了想,有什么啊,大不了就是拍屁股走人呗,所以该学的还是要学,生活还是要继续,总会有精彩的人生等你去创造,所以趁着周末有时间,写了个IOS中操作sqlite数据库的demo,下面我们来看下:

首先在项目中添加sqlite库的sqlite3.dylib,至于如何添加,之前的笔记中提到过了,和添加Framework的方法是一样的。

至于sqlite3的一些基本操作,我们这里就略过了,因为我们也不是第一天接触sqlite3了,所以基本的操作还是知道的。

关键的代码我们来看一下:

首先是我们的viewDidLoad方法中,如果已有数据库,则打开,如果没有,则创建

- (void)viewDidLoad{    [super viewDidLoad];    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documents = [paths objectAtIndex:0];    NSString *database_path = [documents stringByAppendingPathComponent:DBNAME];        if (sqlite3_open([database_path UTF8String], &demo_db) != SQLITE_OK) {        sqlite3_close(demo_db);        NSLog(@"数据库打开失败");    }        NSString *sqlCreateTable = @"CREATE TABLE tbl_test(i_index INTEGER PRIMARY KEY,sc_name VARCHAR(32))";    [self execSql:sqlCreateTable];        NSString *sql1 = [NSString stringWithFormat: @"INSERT INTO tbl_test(sc_name) values('mac')"];    [self execSql:sql1];    // Do any additional setup after loading the view, typically from a nib.}
当然,这其中调用的execSql方法,是我们提前写好的,很简单的一个方法,代码如下:

-(void)execSql:(NSString *)sql{    char *err;    if (sqlite3_exec(demo_db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) {        sqlite3_close(demo_db);        NSLog(@"...数据库操作数据失败!");    }}

然后看下我们的xib文件的布局,很简单,只有一个button和一个label:


然后在按钮的点击事件中,我们添加如下的代码:

- (IBAction)selectSql:(id)sender{    NSString *sqlQuery = @"SELECT * FROM tbl_test";    sqlite3_stmt * statement;        if (sqlite3_prepare_v2(demo_db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {        while (sqlite3_step(statement) == SQLITE_ROW) {            char *name = (char*)sqlite3_column_text(statement, 1);            NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];                        NSLog(@"name:%@ ",nsNameStr);                        showSql.text=nsNameStr;        }    }    sqlite3_close(demo_db);}

OK,这样儿我们就完成了一个简单的demo了,下面我们来执行下看看:


运行的结果如下:


好,到此我们的这个sqlite3的demo也就结束了,那么其实在我们以后的应用程序开发过程当中会有更多的关于sqlite3的应用,到时候我们会自己写一个完善的sqlite3的操作类或者github上也有很多我们可以采用的第三方类库。

2013年6月16日,Eric.Tang 记




原创粉丝点击