日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 哪里可以看毛片 | 免费色av| www.夜夜夜| 欧美久久久 | 久久综合亚洲色hezyo国产 | 91成人在线免费 | 午夜鲁鲁| 波多野结衣在线视频免费观看 | 国产精品黄在线观看 | 亚洲第一淫片 | 成人午夜网站 | www精品视频 | 丁香婷婷视频 | 亚洲五月婷 | 日韩中文字幕有码 | 久久这里只有精品6 | 日本美女动态 | 欧美精选一区二区 | 亚洲精品一二三 | 不卡在线一区二区 | 亚洲性综合网 | 女性裸体瑜伽无遮挡 | 91亚洲精品在线 | 国产性猛交xxxⅹ交酡全过程 | av网站亚洲 | 免费观看a毛片 | 国产毛片在线看 | 99er热精品视频 | 国产特级黄色片 | 国产精品蜜臀 | 免费观看一级一片 | 91精品国产高清91久久久久久 | 日本一区二区不卡在线观看 | 国产一区二区三区四区三区四 | 国产成人黄色av | 波多野结衣三级视频 | 亚洲欧美日韩在线一区 | 久久精品视频9 | 黄视频免费在线观看 | 日本老熟妇毛茸茸 | 三级久久| 久久涩涩| 你操综合 | av一级大片 | 免费69视频| 色欧美片视频在线观看 | 欧美午夜精品一区二区三区 | 欧美人成在线 | 成人国产精品免费观看 | 美国黄色片网站 | 国产精欧美一区二区三区蓝颜男同 | 粗喘呻吟撞击猛烈疯狂 | 制服丝袜国产在线 | 少妇aaaa| 日韩tv| 牛牛免费视频 | 国产动漫av | 丰满熟妇人妻av无码区 | 日本大尺度吃奶做爰久久久绯色 | 色很久| 超碰在线超碰 | 成人国产亚洲 | 精品久久久视频 | 朝桐光av在线 | www.九色.com | 精品国产一区二区三区久久狼黑人 | 欧美大片xxxx | 日本精品久久久久久久 | 午夜精品av | 久久99国产精品久久99 | 国产高中女学生第一次 | 人成精品 | 一级片在线 | www日本黄色| 天天干精品 | 狠狠干免费视频 | 特级西西人体444www高清 | 亚洲精品无码久久 | 久久五月婷 | 操欧美老逼 | 亚洲不卡av一区二区 | www.尤物 | 玉足调教丨vk24分钟 | 色综合av综合无码综合网站 | 国产又猛又黄 | 亚洲欧美成人一区二区三区 | 欧美亚洲日本一区 | 国产精品白嫩极品美女 | 精品少妇白浆小泬60P | 美女四肢被绑在床扒衣 | 国产乱了高清露脸对白 | 亚洲国产欧美在线人成 | 青青草97国产精品免费观看 | 国产黄大片在线观看画质优化 | 调教一区 | 日韩一级黄色录像 | 日韩黄网站 | 久久一本精品 | a视频在线观看免费 |