iOS学习笔记(十五)——数据库操作(SQLite)
来源:互联网 发布:php 执行lua脚本 编辑:程序博客网 时间:2024/04/30 01:28
转载:http://www.verydemo.com/demo_c134_i42591.html
SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,目前应用于Android、iOS、Windows Phone等智能手机。iOS 使用时SQLite,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。
数据库操作包含打开数据库、创建表,表的增、删、改、查。下面代码给出了数据库操作。
创建并打开数据库:
-(BOOL) openDB{ //获取数据库路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documents = [paths objectAtIndex:0]; NSString *database_path = [documents stringByAppendingPathComponent:DBNAME]; //如果数据库存在,则用sqlite3_open直接打开(不要担心,如果数据库不存在sqlite3_open会自动创建) //打开数据库,这里的[path UTF8String]是将NSString转换为C字符串,因为SQLite3是采用可移植的C(而不是 //Objective-C)编写的,它不知道什么是NSString. if (sqlite3_open([database_path UTF8String], &db) == SQLITE_OK) { return YES; }else{ return NO; NSLog(@"数据库打开失败"); sqlite3_close(db); }}
....................................................................
-(void)execSql:(NSString *)sql{ if ([self openDB]) { char *err; if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) { NSLog(@"数据库操作数据失败!"); }else{ NSLog(@"%@",sql); } sqlite3_close(db); } }
创建表:
-(void) insertData{ NSString *insertSql1= [NSString stringWithFormat: @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')", TABLENAME, NAME, AGE, ADDRESS, @"张三", @"13", @"济南"]; [self execSql:insertSql1]; NSString *insertSql2 = [NSString stringWithFormat: @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')", TABLENAME, NAME, AGE, ADDRESS, @"李四", @"12", @"济南"]; [self execSql:insertSql2]; }
修改表:
-(void) updateData{ NSString *updateSql = [NSString stringWithFormat: @"UPDATE '%@' SET '%@' = '%@' WHERE '%@' = '%@'", TABLENAME, AGE, @"15" ,AGE, @"13"]; [self execSql:updateSql];}
删除表内容:
-(void) deleteData{ NSString *sdeleteSql = [NSString stringWithFormat: @"delete from %@ where %@ = '%@'", TABLENAME, NAME, @"张三"]; [self execSql:sdeleteSql];}
上面实现了表内容的增、改、删,下面实现表内容查询。
-(void) selectData{ [self openDB]; NSString *sqlQuery = [NSString stringWithFormat: @"SELECT * FROM %@",TABLENAME]; sqlite3_stmt * statement; if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) { //查询结果集中一条一条的遍历所有的记录,这里的数字对应的是列值,注意这里的列值 while (sqlite3_step(statement) == SQLITE_ROW) { char *name = (char*)sqlite3_column_text(statement, 1); NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name]; int age = sqlite3_column_int(statement, 2); char *address = (char*)sqlite3_column_text(statement, 3); NSString *nsAddressStr = [[NSString alloc]initWithUTF8String:address]; NSLog(@"name:%@ age:%d address:%@",nsNameStr,age, nsAddressStr); } }else{ NSLog(@"select error:%@",sqlQuery); } sqlite3_close(db);}
好了,这就是全部了,iOS中数据库操作的类封装的并不太好用,希望大家尽量封装自己的类,。
Demo下载
/**
* @author 张兴业
* http://blog.csdn.net/xyz_lmn
* iOS入门群:83702688
* android开发进阶群:241395671
* 我的新浪微博:@张兴业TBOW
*/
http://www.cnblogs.com/xiaobaizhu/archive/2012/12/07/2808170.html
0 0
- iOS学习笔记(十五)——数据库操作(SQLite)
- iOS学习笔记(十五)——数据库操作(SQLite)
- iOS学习笔记(十五)——数据库操作(SQLite)
- iOS学习笔记——数据库操作(SQLite)
- iOS学习笔记——数据库操作(SQLite)
- iOS学习笔记——数据库操作(SQLite)
- IOS学习笔记15——SQLite数据库
- iOS学习笔记 数据库SQLite
- [转]iOS—数据库操作(SQLite)
- iOS项目笔记-sqlite数据库操作
- SQLite学习笔记(4)-数据库基本操作
- iOS学习笔记16-数据库SQLite
- ios开发——详解sqlite数据库,封装数据库操作
- Android学习笔记——数据库SQLite
- IOS sqlite数据库操作
- IOS sqlite数据库操作
- IOS数据库操作(Sqlite)
- IOS-SQLite数据库操作
- Asp.Net MVC4开发一:概要
- POJ 1201 差分约束(集合最小元素个数)
- IOS8刷机之后
- oracle数据库的数据库名、实例名、ORACLE_SID
- UITableView刷新数据
- iOS学习笔记(十五)——数据库操作(SQLite)
- Ubuntu中特殊符号命令
- 3-深度学习-自然语言模型
- 【解题报告】uva357_Let Me Count The Ways(让我来数数方案, dp, 完全背包)
- 华为G520联通版刷机包 新蜂V2.3 基于官方精简优化 稳定流畅
- 用Maven构建Mahout项目
- Cocos2dx 多线程
- 主宰全球的10大算法
- 微信公众平台开发详解——由浅入深(微网站、LBS云、Api接口调用、服务号高级接口)