iOS 中SQLite数据库操作

在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{ 
2     static SQLite_Manager *manager = nil; 
3     static dispatch_once_t onceToken; 
4     dispatch_once(&onceToken, ^{
5         manager = [[SQLite_Manager alloc]init]; 
6  }); 
7     return manager; 
8 }

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

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

 

4.创建表,代码如下:

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

转载于:https://my.oschina.net/AngeloTsui/blog/663330

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值