iOS sqlite3 使用

iOS开发中可以使用CoreData做数据存储,也可以使用sqlite。其中CoreData体系庞大使用复杂,在少量数据存储的时候还是选择sqlite自己管理存储较为方便和有效。 写个简单的sqlite使用笔记,方便以后查阅。 1.创建数据库 NSString *patn = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject]; path = [path stringByAppendingComponent:@"myDB.sqlite"]; NSFileManager *fileManager = [NSFileManager defaultManager]; if (NO == [fileManager fileExistsAtPath:path]){ const char *storePath = [path UTF8String]; sqlite3 *database = nil; if (sqlite3_open(storePath,&database) == SQLITE_OK){ NSLog(@"open/create database success!"); } } sqlite3 *db, 数据库句柄,跟文件句柄FILE很类似 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类型的数据 2.插入数据的两种方式 第一种:数据绑定 const char *insertSQL = "insert or replace into TABLE (ID,TEXT) values (?,?);"; sqlite3_stmt *stmt = nil; if(sqlite3_prepare_v2(database,insertSQL,-1,&stmt,nil) == SQLITE_OK){ sqlite3_bind_int (stmt,1,i); sqlite3_bind_text(stmt,2,"my text"); } char *err = NULL; if(sqlite3_step(stmt)!=SQLITE_DONE){ NSLog(@"insert err!"); } 第二种:数据写进sql语句 NSString *sql = [NSString stringWithFormate:@"insert or replace into TABLE (ID,TEXT) values ('%@','%@')",i,text]; //注意value里面的单引号 const char *insertSQL = [sql UTF8String]; char *err = NULL; if(sqlite3_exec(database,insertSQL,NULL,NUll,&err)!=SQLITE_OK){ NSLog(@"insert err!"); } 学习的别人的博客: http://blog.csdn.net/mad1989/article/details/9322307

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值