日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

IOS sqlite数据库增删改查

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

1.簡介

簡單封裝sqlite數據庫操作類 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/*** 創建一個表* sql:執行的SQL語句* dataName:數據庫名稱*/-(void) createTable:(NSString*)sql dataBaseName:(NSString*) dataName; /*** 執行SQL語句,主要完成增加、修改、刪除* sql:執行的SQL語句* params:SQL語句中的參數* dataName:數據庫名稱*/ -(BOOL) execSql:(NSString*)sql parmas:(NSArray*) params dataBaseName:(NSString*)dataName; /*** 選擇數據* sql:查詢的SQL語句* params:查詢SQL語句中的參數* dataName:查詢數據庫名稱*/-(NSMutableArray*) selectSql:(NSString*)sql parmas:(NSArray*) params dataBaseName:(NSString*)dataName;@end 創建的數據庫文件位于?/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; } /*** 選擇數據* sql:查詢的SQL語句* params:查詢SQL語句中的參數* dataName:查詢數據庫名稱*/-(NSMutableArray*) selectSql:(NSString *)sql parmas:(NSArray *)params dataBaseName:(NSString *)dataName{sqlite3 *sqlite=nil;sqlite3_stmt *stmt=nil;//打開數據庫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);//綁定參數for (int i=0; i<params.count; i++) {NSString *param=[params objectAtIndex:i];sqlite3_bind_text(stmt, i+1, [param UTF8String], -1, NULL);}//執行查詢語句result=sqlite3_step(stmt);NSMutableArray *resultData=[NSMutableArray array];//遍歷結果while (result==SQLITE_ROW) {NSMutableDictionary *resultRow=[NSMutableDictionary dictionary];//獲取字段個數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);}//關閉數據庫句柄sqlite3_finalize(stmt);//關閉數據庫sqlite3_close(sqlite);NSLog(@"查詢完!");return resultData; } /*** 執行SQL語句,主要完成增加、修改、刪除* sql:執行的SQL語句* params:SQL語句中的參數* dataName:數據庫名稱*/-(BOOL) execSql:(NSString *)sql parmas:(NSArray *)params dataBaseName:(NSString *)dataName{sqlite3 *sqlite=nil;sqlite3_stmt *stmt=nil;//打開數據庫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);//綁定參數for (int i=0; i<params.count; i++) {NSString *parm=[params objectAtIndex:i];sqlite3_bind_text(stmt, i+1, [parm UTF8String], -1, NULL);}//執行SQLresult=sqlite3_step(stmt);if (result==SQLITE_ERROR || result==SQLITE_MISUSE) {NSLog(@"執行SQL語句失敗");sqlite3_close(sqlite);return NO;}//關閉數據庫句柄sqlite3_finalize(stmt);//關閉數據庫sqlite3_close(sqlite);NSLog(@"執行成功!");return YES; }/*** 創建一個表* sql:執行的SQL語句* dataName:數據庫名稱*/ -(void)createTable:(NSString *)sql dataBaseName:(NSString *)dataName{sqlite3 *sqlite=nil;NSString *fileName=[self DataBaseName:dataName];//打開數據庫int result= sqlite3_open([fileName UTF8String], &sqlite);if (result!=SQLITE_OK) {NSLog(@"打開失敗");}else{const char* sqlCh=[sql UTF8String];char* error;//執行SQLint result=sqlite3_exec(sqlite, sqlCh, NULL, NULL, &error);if (result!=SQLITE_OK) {NSLog(@"創建失敗");NSLog(@"%s",error);sqlite3_close(sqlite);return ;}//關閉數據庫sqlite3_close(sqlite);NSLog(@"創建成功");}}@end

4.調用格式

BaseDB *db=[[BaseDB alloc] init];//創建表NSString *dbCreate=@"create table zhaochao( username text primary key,userPasswd test)";NSString *dbName=@"zhaochao.sqlite";// [db createTable:dbCreate dataBaseName:dbName];//添加數據NSString *insertTable=@"insert into zhaochao (username,userPasswd) values (?,?)";NSArray *insertParmas=@[@"acasdfaa",@"bb"];// [db execSql:insertTable parmas:insertParmas dataBaseName:@"zhaochao.sqlite"];//修改數據NSString *updateTable=@"update zhaochao set username=? where username=?";NSArray *updateParams=@[@"admin",@"zhaochao"];// [db execSql:updateTable parmas:updateParams dataBaseName:@"zhaochao.sqlite"];//刪除數據NSString *deleteTable=@"delete from zhaochao where username=?";NSArray *deleteParams=@[@"aa"];// [db execSql:deleteTable parmas:deleteParams dataBaseName:@"zhaochao.sqlite"];//查詢數據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);}


轉載于:https://www.cnblogs.com/whzhaochao/p/5023435.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。