@interface MyViewController () {
// 数据库实例,代表着整个数据库
sqlite3 *_db;
}
@end @implementation MyViewController - (void)viewDidLoad
{
[super viewDidLoad]; [self openDB]; [self createTables]; for (int i = ; i<; i++) {
//[self insertData];
} [self findData]; // 关闭数据库
sqlite3_close(_db);
} #pragma mark 查询数据
- (void)findData {
char *sql = "select id,name,age from t_person;"; sqlite3_stmt *stmt; // sqlite3_prepare_v2做一些插入数据的准备
// 主要是检查SQL语句的语法问题
int result = sqlite3_prepare_v2(_db, sql, -, &stmt, NULL);
// 说明语句没有语法问题
if (result == SQLITE_OK) { // 如果返回值是ROW,代表读取到一行数据
while (sqlite3_step(stmt) == SQLITE_ROW) {
// 列号从0开始
int ID = sqlite3_column_int(stmt, ); char *name = (char *)sqlite3_column_text(stmt, ); int age = sqlite3_column_int(stmt, ); NSLog(@"id=%i,name=%s,age=%i", ID, name, age);
} } else {
NSLog(@"查询数据的SQL语句语法有问题");
}
} #pragma mark 插入数据
- (void)insertData {
char *sql = "insert into t_person(name, age) values(?, ?);"; sqlite3_stmt *stmt; // sqlite3_prepare_v2做一些插入数据的准备
// 主要是检查SQL语句的语法问题
int result = sqlite3_prepare_v2(_db, sql, -, &stmt, NULL); // 说明语句没有语法问题
if (result == SQLITE_OK) {
// 第2个int类型的参数用来指定第几列,从1开始
// 绑定name字段的值
sqlite3_bind_text(stmt, , "mj", -, NULL); // 绑定age字段的值
sqlite3_bind_int(stmt, , ); // 执行sql语句
if (sqlite3_step(stmt) != SQLITE_DONE) {
NSLog(@"插入数据失败!");
} else {
NSLog(@"插入数据成功!");
}
} else {
NSLog(@"插入数据的SQL语句语法有问题");
}
} #pragma mark 打开数据库
- (void)openDB {
// 数据库文件路径
NSString *filename = [@"sqlite.db" documentsAppend]; // 如果数据库不存在,就会创建一个
int result = sqlite3_open([filename UTF8String], &_db);
if (result == SQLITE_OK) {
NSLog(@"打开数据库成功!");
}
} #pragma mark 创建表
- (void)createTables {
char *sql = "create table if not exists t_person(id integer primary key autoincrement, name text, age integer);"; char *error;
// sqlite3_exec能执行一切SQL语句
// insert into t_person(name, age) values('mj', 10);
int result = sqlite3_exec(_db, sql, NULL, NULL, &error); if (result != SQLITE_OK) {
NSLog(@"创表错误:%s", error);
}
}
@end
 

ios sqlite数据库操作的更多相关文章

  1. IOS SQLITE 数据库操作

    NSArray * array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); N ...

  2. iOS sqlite数据库实现(转)

    转载自:http://www.cnblogs.com/macroxu-1982/archive/2012/10/01/2709960.html 1 实现过程添加libsqlite3组件 选择项目后,在 ...

  3. iOS 中SQLite数据库操作

    在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...

  4. iOS - SQLite Database 操作数据库

    iOS - SQLite Database 操作数据库   Sqlite 能被用在ios上做数据处理用,只要你懂得一点sql 就很容易使用sqlite 1:创建一个简单的View based appl ...

  5. 实验8 SQLite数据库操作

    实验报告 课程名称 实验8  SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型    √设计型    □综合型 学  时 一 ...

  6. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  7. [python]用Python进行SQLite数据库操作

    用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~  ]: u ...

  8. 安卓 SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  9. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

随机推荐

  1. php intval函数

    php intval函数 作用 intval — 获取变量的整数值 使用实例 <?php echo intval('-42'); // -42 ?> 相似函数 boolval() - 获取 ...

  2. 59.C++与正则表达式

    regex_match 整个字符串是否匹配 (通过cmatch存储匹配的结果),match[0]代表整个匹配序列,match[1]代表第1个匹配后的子序列,match[2]代表第2个匹配后的子序列 代 ...

  3. C/C++(语句,数组)

    C语言语句: 两大选择,三大循环,四大跳转 两大跳转:if,switch 三大循环:for,while,do-while 四大跳转:break,continue,goto,return do-whil ...

  4. exit---退出目前的shell

    exit命令   exit命令同于退出shell,并返回给定值.在shell脚本中可以终止当前脚本执行.执行exit可使shell以指定的状态值退出.若不设置状态值参数,则shell以预设值退出.状态 ...

  5. maven 遇到failOnMissingWebXml有关问题解决方法

    (转自) http://blog.csdn.net/liuvlun/article/details/50218507

  6. AtomicInteger类

    今天写代码.尝试使用了AtomicInteger这个类,感觉使用起来非常爽,特别适用于高并发訪问.能保证i++,++id等系列操作的原子性. ++i和i++操作并非线程安全的.非常多人会用到synch ...

  7. hdu 1588 Gauss Fibonacci(矩阵嵌矩阵)

    题目大意: 求出斐波那契中的 第 k*i+b 项的和. 思路分析: 定义斐波那契数列的矩阵 f(n)为斐波那契第n项 F(n) = f(n+1) f(n) 那么能够知道矩阵 A = 1 1 1  0 ...

  8. 火狐—火狐浏览器中的“HttpWatch”

    在IE下通过HttpWatch能够查看HTTP请求的相关细节.这对我们分析程序的运行效率很有帮助,但是在火狐浏览器中的难道就没有相似的工具了吗?答案是否定的--火狐浏览器中也有.在火狐浏览器中该工具叫 ...

  9. UML绘图总结

    九种图总算画完了,着实让自己纠结了老一阵子啊. 只是,幸运的是完毕了,尽管还有些不足之处,可是终于战胜它了.以下说一下自己的绘图过程  一.用例图 UML的第一幅图应该说是用例图了,这是我们绘图的前提 ...

  10. 10lession-if-else条件语句

    python的条件选择语句跟其他语言的及其相似,这里就不做详细记录,仅仅是看个例子好了 #!/usr/bin/python "]: print('1 in [1,2,3,"4&qu ...