你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS中sqlite的具體用法

iOS中sqlite的具體用法

編輯:IOS開發綜合

本文實例為年夜家分享了IOS中SQLite的詳細操作辦法,供年夜家參考,詳細內容以下

#import <SQLite3.h>

@interface ViewController ()
{
 SQLite3 *_sqldb;
}

@end

@implementation ViewController

- (void)viewDidLoad
{
 [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.
 [self OpenDb];
 [self createTable];
 [self insertData];
 [self FindData];
}


//翻開數據庫

-(void)OpenDb{
 
 NSArray *arrs= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 //創立數據庫,假如數據庫存在就直接翻開,不存在就創立翻開
 NSString *path=[arrs lastObject] ;
 NSString *documentpath= [path stringByAppendingPathComponent:@"sql.db"];
 int reslut= sqlite3_open([documentpath UTF8String], &_sqldb);
 if(reslut==SQLITE_OK){
 NSLog(@"數據庫已被翻開");
 }
 
}
//經由過程數據庫實例創立表
-(void)createTable{
 //不帶參數的sql語句
 const char* sql="create table if not exists t_person (id integer primary key autoincrement,name text,age integer);";
 char *error;
 //sqlite3_exec可以履行一切不帶參數的SQL語句。假如是帶參數最好不消,避免SQL注入破綻進擊
 int resutl= sqlite3_exec(_sqldb, sql, NULL, NULL, &error);
 if(resutl==SQLITE_OK){
 NSLog(@"創立表勝利");
 }
else{
 NSLog(@"創立表掉敗--》%s",error);
}
}

//拔出數據
-(void)insertData{
 //帶參數的SQL語句 "?"是帶參數的占位符
 const char * sql="insert into t_person(name,age) values(?,?);";
 sqlite3_stmt *stmp;
 //在履行SQL語句之前檢討SQL語句語法,-1代表字符串的長度
 int result= sqlite3_prepare_v2(_sqldb, sql, -1, &stmp, NULL);
 if(result==SQLITE_OK){
 NSLog(@"拔出SQL語句語法沒有成績");
 //綁定參數,拔出的參數的下標是從1開端
 sqlite3_bind_text(stmp, 1, "gcb", -1, NULL);
 sqlite3_bind_int(stmp, 2, 12);
 
 //履行參參數的SQL語句,不克不及有exec
 int result=sqlite3_step(stmp);
 //拔出停止斷定,要用sqLite_Done來斷定
 if(result==SQLITE_DONE){
  NSLog(@"拔出勝利");
 }
 else{
  NSLog(@"拔出掉敗") ;
 }
 
 }
 else{
 NSLog(@"拔出SQL語句有成績");
 }
}

-(void)FindData{
 char *sql="select id,name,age from t_person";
 //查詢做好用step履行
 sqlite3_stmt *stmt;
 //檢討SQL語句的語法成績
 int result= sqlite3_prepare_v2(_sqldb, sql, -1, &stmt, NULL);
 if(result==SQLITE_OK){
 while (sqlite3_step(stmt)==SQLITE_ROW) {
  //查詢的列是0開端 拔出的列從1開端
//  int xh=sqlite3_column_int(stmt, 0);
  int xh=sqlite3_column_int(stmt, 0);
  char * name=(char *)sqlite3_column_text(stmt, 1);
  int age=sqlite3_column_int(stmt, 2);
  NSLog(@"xh=%i-->name=%s-->age=%i",xh,name,age);
  
  
  
 }
 }
 else{
 NSLog(@"查詢SQL語法有誤");
 }

}

以上就是本文的全體內容,願望對年夜家的進修有所贊助。

【iOS中sqlite的具體用法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved