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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

IOS开发基础之SQLite3数据库的使用增删改查

發(fā)布時間:2023/12/18 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发基础之SQLite3数据库的使用增删改查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

IOS開發(fā)基礎之SQLite3數(shù)據(jù)庫的使用增刪改查

ios開發(fā)我們可能會使用到數(shù)據(jù)庫進行持久化存儲。sqlite3 是輕量級的數(shù)據(jù)庫。
今天我們來介紹sqlite3 數(shù)據(jù)庫。此方法跟java的增刪改查很類似。
源碼在我的主頁里面。

// // ViewController.m // sqlite3 // // Created by 魯軍 on 2021/2/24. //#import "ViewController.h" #import <sqlite3.h> @interface ViewController () {sqlite3 *_db; } @end @implementation ViewController /*在應用程序第一次運行,由于沙盒中沒有數(shù)據(jù)庫 ,所以需要創(chuàng)建一個空的數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫的之后,為了保證能夠正常運行 通常需要做一些初始化工作,其中最重要的一項工作就是創(chuàng)建數(shù)據(jù)庫的表而下次使用時 無需再創(chuàng)建數(shù)據(jù)庫表了**/ - (void)viewDidLoad {[super viewDidLoad];//1.[self openDB];//NSLog(@"%@",NSHomeDirectory());[self createTable];//操作數(shù)據(jù) // NSArray *array = @[@"張三",@"李四",@"王二",@"趙六"]; // for(int i = 0;i<50;i++){ // NSString *str=array[arc4random_uniform(4)]; // NSString *name = [NSString stringWithFormat:@"%@%d",str,arc4random_uniform(1000)]; // NSString *phoneNo = [NSString stringWithFormat:@"1889%05d",arc4random_uniform(100000)]; // [self addPerson:name age:18 + arc4random_uniform(20) phoneNo:phoneNo]; // }[self allPersons]; } -(void)allPersons{NSString *sql= @"SELECT id,name,age,phoneNo FROM t_person";// 1. 評估準備SQL語句是否正確sqlite3_stmt *stmt = NULL;if(SQLITE_OK==sqlite3_prepare_v2(_db, sql.UTF8String, -1, &stmt, NULL)){//2 如果能夠正常查詢。調(diào)用單步執(zhí)行方法。依次取得查詢結果while(SQLITE_ROW==sqlite3_step(stmt)){int ID = sqlite3_column_int(stmt, 0);const unsigned char *name = sqlite3_column_text(stmt, 1);int age = sqlite3_column_int(stmt, 2);const unsigned char *phoneNo = sqlite3_column_text(stmt, 3);NSString *nameUTF8 = [NSString stringWithUTF8String:(const char *)name];NSString *phoneNoUTF8 = [NSString stringWithUTF8String:(const char *)phoneNo];NSLog(@"%d -- %@ - %d -- %@",ID,nameUTF8,age,phoneNoUTF8);}//3 獲取顯示查詢結果}else{NSLog(@"SQL語法錯誤 ");}//4 釋放句柄sqlite3_finalize(stmt); }-(void)addPerson:(NSString *)name age:(NSInteger)age1 phoneNo:(NSString *)phoneNo {NSString *sql =[NSString stringWithFormat:@"INSERT INTO t_person (name, age, phoneNo) VALUES ('%@', '%d', '%@')", name, age1, phoneNo];[self execSql:sql msg:@"添加個人記錄"]; } -(void)execSql:(NSString *)sql msg:(NSString *)msg{char *errmsg;if(SQLITE_OK==sqlite3_exec(_db, sql.UTF8String, NULL, NULL, &errmsg)){NSLog(@"%@成功",msg);}else{NSLog(@"%@失敗-%s",msg,errmsg);} } -(void)createTable{NSString * sql = @"create table IF NOT EXISTS t_person (id integer PRIMARY KEY AUTOINCREMENT,name text,age integer,phoneNo text)";[self execSql:sql msg:@"創(chuàng)建表"];} -(void)openDB{NSString *docDir =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString * dbName = [docDir stringByAppendingPathComponent: @"my.db"];//SQLite 數(shù)據(jù)庫的連接,基于連接可以進行數(shù)據(jù)庫的操作if( SQLITE_OK == sqlite3_open(dbName.UTF8String, &_db)){NSLog(@"創(chuàng)建打開數(shù)據(jù)庫成功");}else{NSLog(@"創(chuàng)建數(shù)據(jù)庫失敗");} } @end



總結

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

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