日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

IOS sqlite数据库增删改查

發(fā)布時間:2025/4/16 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS sqlite数据库增删改查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.簡介

簡單封裝sqlite數(shù)據(jù)庫操作類 BaseDB 用于完成對sqlite的增刪改查,使用前先導入libsqlite3.0.dylib庫

2.BaseDB.h

// // BaseDB.h // SqliteDemo // // Created by 趙超 on 14-8-26. // Copyright (c) 2014年 趙超. All rights reserved. //#import <Foundation/Foundation.h> #import "sqlite3.h"@interface BaseDB : NSObject/*** 創(chuàng)建一個表* sql:執(zhí)行的SQL語句* dataName:數(shù)據(jù)庫名稱*/-(void) createTable:(NSString*)sql dataBaseName:(NSString*) dataName; /*** 執(zhí)行SQL語句,主要完成增加、修改、刪除* sql:執(zhí)行的SQL語句* params:SQL語句中的參數(shù)* dataName:數(shù)據(jù)庫名稱*/ -(BOOL) execSql:(NSString*)sql parmas:(NSArray*) params dataBaseName:(NSString*)dataName; /*** 選擇數(shù)據(jù)* sql:查詢的SQL語句* params:查詢SQL語句中的參數(shù)* dataName:查詢數(shù)據(jù)庫名稱*/-(NSMutableArray*) selectSql:(NSString*)sql parmas:(NSArray*) params dataBaseName:(NSString*)dataName;@end 創(chuàng)建的數(shù)據(jù)庫文件位于?/Users/zhaochao/Library/Application Support/iPhone Simulator/7.1/Applications/07D17328-B63C-4D87-9B6C-03AA5CD681EA/Documents/zhaochao.sqlite, 就是?NSString *fileName=[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",name]; 這個目錄。文件可以直接用SQLiteManager軟件打開,也可以在firefox瀏覽器中安裝sqlitemanager插件打開,如下圖

3.BaseDB.m

// // BaseDB.m // SqliteDemo // // Created by 趙超 on 14-8-26. // Copyright (c) 2014年 趙超. All rights reserved. //#import "BaseDB.h" @implementation BaseDB/** 獲取沙盒目錄* name:追加的目錄aa**/ -(NSString*) DataBaseName:(NSString *) name {NSString *fileName=[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",name];return fileName; } /*** 選擇數(shù)據(jù)* sql:查詢的SQL語句* params:查詢SQL語句中的參數(shù)* dataName:查詢數(shù)據(jù)庫名稱*/-(NSMutableArray*) selectSql:(NSString *)sql parmas:(NSArray *)params dataBaseName:(NSString *)dataName{sqlite3 *sqlite=nil;sqlite3_stmt *stmt=nil;//打開數(shù)據(jù)庫NSString *fileName=[self DataBaseName:dataName];int result= sqlite3_open([fileName UTF8String], &sqlite);if (result!=SQLITE_OK) {NSLog(@"打開失敗");return nil;}const char* sqlCh=[sql UTF8String];//編譯SQL語句sqlite3_prepare_v2(sqlite, sqlCh, -1, &stmt, NULL);//綁定參數(shù)for (int i=0; i<params.count; i++) {NSString *param=[params objectAtIndex:i];sqlite3_bind_text(stmt, i+1, [param UTF8String], -1, NULL);}//執(zhí)行查詢語句result=sqlite3_step(stmt);NSMutableArray *resultData=[NSMutableArray array];//遍歷結果while (result==SQLITE_ROW) {NSMutableDictionary *resultRow=[NSMutableDictionary dictionary];//獲取字段個數(shù)int col_count = sqlite3_column_count(stmt);for (int i=0; i<col_count; i++) {//獲取字段名稱const char*columName=sqlite3_column_name(stmt,i);//獲取字段值char* columValue=(char*) sqlite3_column_text(stmt, i);NSString *columkeyStr=[NSString stringWithCString:columName encoding:NSUTF8StringEncoding];NSString *columValueStr=[NSString stringWithCString:columValue encoding:NSUTF8StringEncoding];[resultRow setObject:columValueStr forKey:columkeyStr];}[resultData addObject:resultRow];result=sqlite3_step(stmt);}//關閉數(shù)據(jù)庫句柄sqlite3_finalize(stmt);//關閉數(shù)據(jù)庫sqlite3_close(sqlite);NSLog(@"查詢完!");return resultData; } /*** 執(zhí)行SQL語句,主要完成增加、修改、刪除* sql:執(zhí)行的SQL語句* params:SQL語句中的參數(shù)* dataName:數(shù)據(jù)庫名稱*/-(BOOL) execSql:(NSString *)sql parmas:(NSArray *)params dataBaseName:(NSString *)dataName{sqlite3 *sqlite=nil;sqlite3_stmt *stmt=nil;//打開數(shù)據(jù)庫NSString *fileName=[self DataBaseName:dataName];int result= sqlite3_open([fileName UTF8String], &sqlite);if (result!=SQLITE_OK) {NSLog(@"打開失敗");return NO;}const char* sqlCh=[sql UTF8String];//編譯SQL語句sqlite3_prepare_v2(sqlite, sqlCh, -1, &stmt, NULL);//綁定參數(shù)for (int i=0; i<params.count; i++) {NSString *parm=[params objectAtIndex:i];sqlite3_bind_text(stmt, i+1, [parm UTF8String], -1, NULL);}//執(zhí)行SQLresult=sqlite3_step(stmt);if (result==SQLITE_ERROR || result==SQLITE_MISUSE) {NSLog(@"執(zhí)行SQL語句失敗");sqlite3_close(sqlite);return NO;}//關閉數(shù)據(jù)庫句柄sqlite3_finalize(stmt);//關閉數(shù)據(jù)庫sqlite3_close(sqlite);NSLog(@"執(zhí)行成功!");return YES; }/*** 創(chuàng)建一個表* sql:執(zhí)行的SQL語句* dataName:數(shù)據(jù)庫名稱*/ -(void)createTable:(NSString *)sql dataBaseName:(NSString *)dataName{sqlite3 *sqlite=nil;NSString *fileName=[self DataBaseName:dataName];//打開數(shù)據(jù)庫int result= sqlite3_open([fileName UTF8String], &sqlite);if (result!=SQLITE_OK) {NSLog(@"打開失敗");}else{const char* sqlCh=[sql UTF8String];char* error;//執(zhí)行SQLint result=sqlite3_exec(sqlite, sqlCh, NULL, NULL, &error);if (result!=SQLITE_OK) {NSLog(@"創(chuàng)建失敗");NSLog(@"%s",error);sqlite3_close(sqlite);return ;}//關閉數(shù)據(jù)庫sqlite3_close(sqlite);NSLog(@"創(chuàng)建成功");}}@end

4.調(diào)用格式

BaseDB *db=[[BaseDB alloc] init];//創(chuàng)建表NSString *dbCreate=@"create table zhaochao( username text primary key,userPasswd test)";NSString *dbName=@"zhaochao.sqlite";// [db createTable:dbCreate dataBaseName:dbName];//添加數(shù)據(jù)NSString *insertTable=@"insert into zhaochao (username,userPasswd) values (?,?)";NSArray *insertParmas=@[@"acasdfaa",@"bb"];// [db execSql:insertTable parmas:insertParmas dataBaseName:@"zhaochao.sqlite"];//修改數(shù)據(jù)NSString *updateTable=@"update zhaochao set username=? where username=?";NSArray *updateParams=@[@"admin",@"zhaochao"];// [db execSql:updateTable parmas:updateParams dataBaseName:@"zhaochao.sqlite"];//刪除數(shù)據(jù)NSString *deleteTable=@"delete from zhaochao where username=?";NSArray *deleteParams=@[@"aa"];// [db execSql:deleteTable parmas:deleteParams dataBaseName:@"zhaochao.sqlite"];//查詢數(shù)據(jù)NSString *selectTable=@"select username,userPasswd from zhaochao where userPasswd=?";NSString *selectParam=@[@"bb"];NSArray *result=[db selectSql:selectTable parmas:selectParam dataBaseName:@"zhaochao.sqlite"];for (int i=0; i<result.count; i++) {NSMutableDictionary *arr=[result objectAtIndex:i];NSLog(@"%@",arr);}


轉(zhuǎn)載于:https://www.cnblogs.com/whzhaochao/p/5023435.html

總結

以上是生活随笔為你收集整理的IOS sqlite数据库增删改查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。