Ios开发之sqlite
Sqlite是ios数据存储的一个重要手段,今天我们就一块来看一下,怎样使用sqlite将数据存储到沙盒中去。
第一步:导入一个框架libsqlite3.0.dylib
选中TARGETS在General中的Linked Frameworks and Libraries选项中点击‘+’添加
第二步:代码部分
1.找到沙盒中的路径
NSArray *path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [path objectAtIndex:];
NSString *dbPath = [documentPath stringByAppendingPathComponent:@"sqlite.db"];
2.创建sqlite对象,并执行打开操作
sqlite3 *db;
//打开数据库
int res = sqlite3_open(dbPath.UTF8String, &db);
3.创建表
NSString *sql = @"create table if not exists 'student' ('id' integer primary key autoincrement,'studentname' varchar)";
int sqlRes = sqlite3_exec(db, sql.UTF8String, NULL, NULL, NULL);
if (sqlRes == SQLITE_OK) {
NSLog(@"create table ok");
}
4.向表中插入数据
//增 NSString *sql1 = @"insert into student (studentname) values ('小帐')";
int sql1Res = sqlite3_exec(db, sql1.UTF8String, NULL, NULL, NULL);
if (sql1Res == SQLITE_OK) {
NSLog(@"insert ok");
}
5.从表中删除数据
NSString *deletesql = @"delete from student where id = 3";
int deleres = sqlite3_exec(db, deletesql.UTF8String, NULL, NULL, NULL);
if (deleres == SQLITE_OK) {
NSLog(@"delete is ok");
}
6.修改表中的数据
//修改
NSString *updateSql = @"update student set studentname = 'wangling' where id = 4";
int updateres = sqlite3_exec(db, updateSql.UTF8String, NULL, NULL, NULL);
if (updateres == SQLITE_OK) {
NSLog(@"update is ok");
}
7.查询数据
查询数据和,增删改都有所不同,我们需要首先创建sqlite_stmt对象,用来存放我们查询的数据流(二进制),然后使用sqlite3_prepare_v2函数准备,通过sqlite3_bind_添加查询参数最后获取数据,最后关闭sqlite_stmt对象。
//查
sqlite3_stmt *stmt;
NSString *selectSql = @"select * from student where id = ?"; if (sqlite3_prepare_v2(db, selectSql.UTF8String, -, &stmt, nil) == SQLITE_OK) {
sqlite3_bind_int(stmt, , );
while (sqlite3_step(stmt) == SQLITE_ROW) {
int identity = sqlite3_column_int(stmt, );
NSLog(@"%d",identity);
char * name= (char *)sqlite3_column_text(stmt, );
NSLog(@"%@",[NSString stringWithUTF8String:name]);
}
if (stmt) {
sqlite3_finalize(stmt);
}
8.关闭数据库sqlite对象
if (db) {
sqlite3_close(db);
}
出处:http://www.cnblogs.com/jerehedu/
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
技术咨询:

Ios开发之sqlite的更多相关文章
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- iOS开发之UIImage等比缩放
iOS开发之UIImage等比缩放 评论功能真不错 评论开通后,果然有很多人吐槽.谢谢大家的支持和关爱,如果有做的不到的地方,还请海涵.毕竟我一个人的力量是有限的,我会尽自己最大的努力大家准备一些干货 ...
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
iOS开发之 Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...
- iOS开发之loadView、viewDidLoad及viewDidUnload的关系
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
- iOS开发之info.pist文件和.pch文件
iOS开发之info.pist文件和.pch文件 如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用.因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰. 打开一个项目,我们 ...
- iOS开发之WKWebView简单使用
iOS开发之WKWebView简单使用 iOS开发之 WKWebVeiw使用 想用UIWebVeiw做的,但是突然想起来在iOS8中出了一个新的WKWebView,算是UIWebVeiw的升级版. ...
- iOS 开发之Block
iOS 开发之Block 一:什么是Block.Block的作用 UI开发和网络常见功能的实现回调,按钮事件的处理方法是回调方法. 1. 按钮事件 target action 机制. 它是将一 ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
随机推荐
- 用函数datepart获取当前日期、周数、季度
用函数datepart处理就可以了,示例:select datepart(weekday,getdate()) as 周内的第几日select datepart(week,getdate()) as ...
- 多线程JAVA篇(一)
解析AsyncTask源码之前,首先讲述与之相关的Java线程知识: 知识点清单 1.Thread类 2.Runnable接口 3.Callable接口 4.synchronized关键字 5.vol ...
- extjs中form.reset(true)出现的bug修复
在之前的开发extjs中,用ext.form.panel开发了一个表单,当使用了reset(true)之后,再次使用getRecord()却还是可以得到值,该值为上一次的旧值,查看了api文档,再结合 ...
- 将枚举定义生成SQL中的Case-When-then语句
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- SQL语句汇总(三)——聚合函数、分组、子查询及组合查询
聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...
- C#设计模式(23)——备忘录模式(Memento Pattern)
一.引言 在上一篇博文分享了访问者模式,访问者模式的实现是把作用于某种数据结构上的操作封装到访问者中,使得操作和数据结构隔离.而今天要介绍的备忘者模式与命令模式有点相似,不同的是,命令模式保存的是发起 ...
- [JS9] document's bgColor改变背景颜色
<HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...
- 关于消除if-else的简单总结
if-else是计算机语言中基本的分支语句,虽然很简单,但可能会出现滥用的情况,如图: 这种标记判断,嵌套成这样(其实没有必要嵌套),会让别人觉得作者水平很低. 可以看出,这些if仅仅是在判断一个变量 ...
- 构建单页Web应用
摘自前端农民工的博客 让我们先来看几个网站: coding teambition cloud9 注意这几个网站的相同点,那就是在浏览器中,做了原先“应当”在客户端做的事情.它们的界面切换非常流畅,响应 ...
- GPU---并行计算利器
转载请引用:GPU---并行计算利器 源于阿里巴巴CCO<猿来如此>分享 1 GPU是什么 如图1所示,这台PC机与普通PC机不同的是这里插了7张显卡,左下角是显卡,在中间的就是GPU芯片 ...