在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}