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

最近各种闹心了啊,工作的事儿,还有一些私人的原因,然后变得有点儿懒了,今天仔细想了想,有什么啊,大不了就是拍屁股走人呗,所以该学的还是要学,生活还是要继续,总会有精彩的人生等你去创造,所以趁着周末有时间,写了个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 记




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值