你的位置:首页 > 操作系统

[操作系统]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 }