打开数据库
sqlite3 * db = [Database openDB];
数据库的操作指针 stmt:statement
sqlite3_stmt * stmt = nil;
参数1 , 数据库指针 ,
参数2 SQL语句
参数3 SQL语句的长度 (-1 代表的是无限长 , 自动匹配长度)
参数4 返回数据库操作指针
参数5 为未来做准备的 , 预留参数 , 一般写成NULL
验证SQL语句的正确性
int result = sqlite3_prepare_v2(db, "select * from Student", -1, &stmt, NULL);
NSMutableArray * studentArray = [NSMutableArray array];
判断SQL语句的结果
if (result == SQLITE_OK)
{
while (sqlite3_step(stmt) == SQLITE_ROW) 存在一行数据
{
列数从零开始
int ID = sqlite3_column_int(stmt, 0);
const unsigned char * name = sqlite3_column_text(stmt, 1);
const unsigned char * gender = sqlite3_column_text(stmt, 2);
int age = sqlite3_column_int(stmt, 3);
blob 类型的获取
1. 获取长度
int length = sqlite3_column_bytes(stmt, 4);
2. 获取数据
const void * photo = sqlite3_column_blob(stmt, 4);
3.转换成NSData
NSData * photoData = [NSData dataWithBytes:photo length:length];
4.转成 UIImage
UIImage * p_w_picpath = [UIImage p_w_picpathWithData:photoData];
封装Student模型
Student * student = [[Student alloc]init];
student.ID = ID;
student.name = [NSString stringWithUTF8String:(const char*)name];
student.age = age;
student.gender = [NSString stringWithUTF8String:(const char *)gender];
student.photo = p_w_picpath;
添加到数组中
[studentArray addObject:student];
}
}
释放stmt指针
sqlite3_finalize(stmt);
关闭数据库
[Database closeDB];
sqlite3 数据操作 查询
原创
©著作权归作者所有:来自51CTO博客作者缘起愿落的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇: sqlite3 关闭数据库

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
sqlite3常规操作
在安装完Android Studio之后,在SDK/platform-tools目录下 会看到一个sqlite3.exe的可执行文件,对最最基本的操作进行交代
sqlite 数据库 sql oracle 浮点数 -
python操作sqlite3
sql
sqlite sql 数据库 sql语句 提交事务