// 拼接数据库地址 NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]; NSString *sqlFile = [path stringByAppendingPathComponent:@"student.sqlite"]; // 打开数据 int result = sqlite3_open(sqlFile.UTF8String, &_db); 打开数据库会返回一个int类型的返回值,通过该值可以判断创建数据库是否成功 // 判断是否打开成功 if (result == SQLITE_OK) { NSLog(@"打开成功"); // 创建表 /* 第一个参数: 需要执行SQL语句的数据库对象 第二个参数: 需要执行的SQL语句 第三个参数: 回调函数 第四个参数: 第三个参数的参数 第五个参数: 接收错误信息 */ // 创建表的sql语句 NSString *sql = @"CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT , name TEXT, age INTEGER, score REAL);"; result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL); if (result == SQLITE_OK) { NSLog(@"创建表成功"); }else { NSLog(@"创建表失败"); } }else { NSLog(@"打开失败"); }
NSString *sql = @"INSERT INTO t_student(age, score, name) VALUES ('28', 100, 'jonathan');"; int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL); if (result == SQLITE_OK) { NSLog(@"插入成功"); }
NSString *sql = @"UPDATE t_student SET name = 'LNJ';"; int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL); if (result == SQLITE_OK) { NSLog(@"修改成功"); }
NSString *sql = @"DELETE FROM t_student WHERE id = 1; "; int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL); if (result == SQLITE_OK) { NSLog(@"删除成功"); }
NSString *sql = @"SELECT * FROM t_student;"; sqlite3_stmt *stemt = NULL; /* 第一个参数:需要执行SQL语句的数据库 第二个参数:需要执行的SQL语句 第三个参数: 告诉系统SQL语句的长度, 如果传入一个小于0的数, 系统会自动计算 第四个参数:结果集, 里面存放所有查询到的数据(不严谨) */ sqlite3_prepare_v2(_db, sql.UTF8String, -1, &stemt, NULL); // 判断有没有查询结果 while (sqlite3_step(stemt) == SQLITE_ROW) { // 取出第一个字段的查询得结果 const unsigned char *name = sqlite3_column_text(stemt, 1); // 取出第一个字段的查询得结果 int age = sqlite3_column_int(stemt, 2); // 取出第一个字段的查询得结果 double score = sqlite3_column_double(stemt, 3); NSLog(@"%s %d %f", name, age, score); }
原文地址:http://blog.csdn.net/u011058732/article/details/45177681