iOS中SQLite数据库操作

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

实现简单 SQLite数据库操作 的 demo 具体过程:

1.创建名为 SQLite_Manage 的.h .m 文件,导入头文件<sqlite3.h>

2.数据库在一个app中只有一个,使用单例模式:(代码如下)

1+ (SQLite_Manager *)sharedManager{2staticSQLite_Manager *manager =nil;3staticdispatch_once_t onceToken;4dispatch_once(&onceToken, ^{5manager =[[SQLite_Manager alloc]init];6});7returnmanager;8}

3.打开数据库,代码如下:

1- (void)open{2//document路径3NSString *docment =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];4//sqlite 路径5NSString *sqlitePath = [docment stringByAppendingPathComponent:@"database.sqlite"];6//打开数据库7intresult = sqlite3_open(sqlitePath.UTF8String, &db);8//判断数据库是否打开成功9if(result ==SQLITE_OK) {10UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"打开成功"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];11[alertView show];12}else{13UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"打开失败"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];14[alertView show];15}16}

4.创建表,代码如下:

1- (void)creatTable{2//sql语句3NSString *sqlString =@"create table Person (id integerPRimary key,name text,age integer)";4//执行SQL语句5char*error =nil;6sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);78//判断是否出现了错误9if(error ==nil){10UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"创建表成功"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];11[alertView show];12}else{13UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"创建表失败"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];14[alertView show];15}16}

5.插入数据,代码如下:

1- (void)insert{2//sql语句3NSString *sqlString =@"insert into Person ('name','age') values ('Ager',18)";4//执行SQL语句5char*error =nil;6sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);7//判断是否出现了错误8if(error ==nil){9UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"插入数据成功"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];10[alertView show];11}else{12UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"插入数据失败"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];13[alertView show];14}1516}

6.修改数据,代码如下:

1- (void)update{2//sql语句3NSString *sqlString =@"update Person set 'name' = 'Arun' where id = 1";4//执行sql语句5char*error =nil;6sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);78//判断是否出现了错误9if(error ==nil){10UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"数据更新成功"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];11[alertView show];12}else{13UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"数据更新失败"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];14[alertView show];15}16}

7.查询数据,代码如下:

1- (void)select{2//sql语句3NSString *sqlString =@"select * from Person";4//准备sql5sqlite3_stmt *stmt =nil;6sqlite3_prepare(db, sqlString.UTF8String,-1, &stmt, nil);7//单步执行语句8while(sqlite3_step(stmt) ==SQLITE_ROW) {9intID = sqlite3_column_int(stmt,0);10constunsignedchar*name = sqlite3_column_text(stmt,1);11intage = sqlite3_column_int(stmt,2);12NSLog(@"%d,%s,%d",ID,name,age);13}14sqlite3_finalize(stmt);15}

8.删除数据,代码如下:

1- (void)deleteData{2//sql语句3NSString *sqlString =@"delete from Person where id = 1";4//执行sql语句5char*error =nil;6sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);7//判断是否出现了错误8if(error ==nil){9UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"删除成功"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];10[alertView show];11}else{12UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"删除失败"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];13[alertView show];14}15}

9.关闭数据库,代码如下:

1- (void)close{2//关闭数据库3intresult =sqlite3_close(db);4//判断数据库是否关闭成功5if(result ==SQLITE_OK) {6UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"关闭成功"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];7[alertView show];8}else{9UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"数据库执行结果"message:@"关闭失败"delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];10[alertView show];11}12}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航