本文實例為年夜家分享了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的具體用法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!