1.添加数据库并导入头文件


#import <sqlite3.h>
2.定义一个数据库指针
@property(nonatomic, assign) sqlite3 *sql;
3.打开/创建数据库
//如果数据库不存在就创建 如果存在就直接打开 - (void)open{ NSString *path = [
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).
firstObject stringByAppendingPathComponent:@"db.sql"]; int result = sqlite3_open
([path UTF8String], &_sql); if (result == SQLITE_OK) { NSLog(@"打开数据库成功"); }else{
NSLog(@"打开数据库失败"); } }
4.创建表
- (void)createTable{ //1.创建sql语句 NSString *createSql = @"create table
student(id integer primary key autoincrement, name text, age integer)";
//2.执行语句 int result = sqlite3_exec(_sql, [createSql UTF8String], NULL, NULL,
NULL); if (result == SQLITE_OK) { NSLog(@"创建表成功"); }else{ NSLog(@"创建表失败"); } }
5.插入数据(一条记录)
- (void)insert{ NSString *insertSql = @"insert into student(name,age)
values('jack',20)"; if (sqlite3_exec(_sql, [insertSql UTF8String], NULL, NULL,
NULL)) { NSLog(@"插入数据成功"); }else{ NSLog(@"插入数据失败"); } }
6.插入数据(一个字段)
- (void)addColumn{ NSString *alterSql = @"alter table student add icon blob";
if (sqlite3_exec(_sql, [alterSql UTF8String], NULL, NULL, NULL)) { NSLog(@
"添加字段成功"); }else{ NSLog(@"添加字段失败"); } }
7.插入数据(图片视频音频等类型)
- (void)insertMultiple{ //?:占位符 NSString *insetSql = @"insert into
student(name,age,icon) values(?,?,?)"; //预处理 sqlite3_stmt *stmt = NULL; if(
sqlite3_prepare(_sql, [insetSql UTF8String], -1, &stmt, NULL) == SQLITE_OK) {
//取图片的二进制数据 UIImage *img = [UIImage imageNamed:@"1"]; NSData *imgData =
UIImagePNGRepresentation(img); //绑定数据 sqlite3_bind_text(stmt, 1, "jone", -1,
NULL); sqlite3_bind_int(stmt, 2, -1); sqlite3_bind_blob(stmt, 3, [imgData bytes]
, (int)imgData.length, NULL); //将绑定的数据保存到数据库里面 if (sqlite3_step(stmt) ==
SQLITE_DONE) { NSLog(@"保存数据成功"); }else{ NSLog(@"保存数据失败"); } }else{ NSLog(@
"预处理失败"); } }
8.更新数据
/* sqlite3_open(): 第一个参数:要打开的数据库的路径需要utf-8编码 第二个参数:数据库指针的地址 */ - (void)update{
NSString*updateSql = @"update into student set name='rose',age=18 where id=1";
if (sqlite3_exec(_sql, [updateSql UTF8String], NULL, NULL, NULL)) { NSLog(@
"更新数据成功"); }else{ NSLog(@"更新数据失败"); } }
9.查询表
- (void)select{ NSString *selectSql = @"select * from student"; //1.预处理
将数据先保存起来 sqlite3_stmt *stmt = NULL; //-1:表示自动计算 if(sqlite3_prepare(_sql, [
selectSql UTF8String], -1, &stmt, NULL) == SQLITE_OK){ //2.一条一条地读取数据 while (
sqlite3_step(stmt) == SQLITE_ROW) { //一列一列去取每一条记录 char *name = (char *)
sqlite3_column_text(stmt, 1); int age = sqlite3_column_int(stmt, 2); NSData *
data= [NSData dataWithBytes:sqlite3_column_blob(stmt, 3) length:
sqlite3_column_bytes(stmt, 3)]; UIImage *image = [UIImage imageWithData:data];
NSLog(@"%@ %s %d",image ,name , age); } }else{ NSLog(@"预处理失败"); } }

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信