iOS中sqlite的詳細(xì)用法
本文實(shí)例為大家分享了ios中sqlite的具體操作方法,供大家參考,具體內(nèi)容如下
#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];
}
//打開(kāi)數(shù)據(jù)庫(kù)
-(void)OpenDb{
NSArray *arrs= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//創(chuàng)建數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)存在就直接打開(kāi),不存在就創(chuàng)建打開(kāi)
NSString *path=[arrs lastObject] ;
NSString *documentpath= [path stringByAppendingPathComponent:@"sql.db"];
int reslut= sqlite3_open([documentpath UTF8String], &_sqldb);
if(reslut==SQLITE_OK){
NSLog(@"數(shù)據(jù)庫(kù)已被打開(kāi)");
}
}
//通過(guò)數(shù)據(jù)庫(kù)實(shí)例創(chuàng)建表
-(void)createTable{
//不帶參數(shù)的sql語(yǔ)句
const char* sql="create table if not exists t_person (id integer primary key autoincrement,name text,age integer);";
char *error;
//sqlite3_exec可以執(zhí)行一切不帶參數(shù)的SQL語(yǔ)句。如果是帶參數(shù)最好不用,防止SQL注入漏洞攻擊
int resutl= sqlite3_exec(_sqldb, sql, NULL, NULL, &error);
if(resutl==SQLITE_OK){
NSLog(@"創(chuàng)建表成功");
}
else{
NSLog(@"創(chuàng)建表失?。?s",error);
}
}
//插入數(shù)據(jù)
-(void)insertData{
//帶參數(shù)的SQL語(yǔ)句 "?"是帶參數(shù)的占位符
const char * sql="insert into t_person(name,age) values(?,?);";
sqlite3_stmt *stmp;
//在執(zhí)行SQL語(yǔ)句之前檢查SQL語(yǔ)句語(yǔ)法,-1代表字符串的長(zhǎng)度
int result= sqlite3_prepare_v2(_sqldb, sql, -1, &stmp, NULL);
if(result==SQLITE_OK){
NSLog(@"插入SQL語(yǔ)句語(yǔ)法沒(méi)有問(wèn)題");
//綁定參數(shù),插入的參數(shù)的下標(biāo)是從1開(kāi)始
sqlite3_bind_text(stmp, 1, "gcb", -1, NULL);
sqlite3_bind_int(stmp, 2, 12);
//執(zhí)行參參數(shù)的SQL語(yǔ)句,不能有exec
int result=sqlite3_step(stmp);
//插入進(jìn)行判斷,要用sqLite_Done來(lái)判斷
if(result==SQLITE_DONE){
NSLog(@"插入成功");
}
else{
NSLog(@"插入失敗") ;
}
}
else{
NSLog(@"插入SQL語(yǔ)句有問(wèn)題");
}
}
-(void)FindData{
char *sql="select id,name,age from t_person";
//查詢做好用step執(zhí)行
sqlite3_stmt *stmt;
//檢查SQL語(yǔ)句的語(yǔ)法問(wèn)題
int result= sqlite3_prepare_v2(_sqldb, sql, -1, &stmt, NULL);
if(result==SQLITE_OK){
while (sqlite3_step(stmt)==SQLITE_ROW) {
//查詢的列是0開(kāi)始 插入的列從1開(kāi)始
// 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語(yǔ)法有誤");
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- iOS App項(xiàng)目中引入SQLite數(shù)據(jù)庫(kù)的教程
- iOS中sqlite數(shù)據(jù)庫(kù)的原生用法
- iOS中SQLite的操作方法
- iOS中SQLite使用教程
- iOS sqlite對(duì)數(shù)據(jù)庫(kù)的各種操作(日常整理全)
- 簡(jiǎn)介iOS開(kāi)發(fā)中應(yīng)用SQLite的模糊查詢和常用函數(shù)
- iOS應(yīng)用開(kāi)發(fā)中SQLite的初步配置指南
- iOS開(kāi)發(fā)中使用FMDB來(lái)使程序連接SQLite數(shù)據(jù)庫(kù)
- iOS App使用SQLite之句柄的定義及數(shù)據(jù)庫(kù)的基本操作
相關(guān)文章
IOS利用CocoaHttpServer搭建手機(jī)本地服務(wù)器
這篇文章主要介紹了IOS利用CocoaHttpServer搭建手機(jī)本地服務(wù)器的步驟,幫助大家更好的理解和學(xué)習(xí)使用ios開(kāi)發(fā),感興趣的朋友可以了解下2021-04-04
使用Swift代碼實(shí)現(xiàn)iOS手勢(shì)解鎖、指紋解鎖實(shí)例詳解
這篇文章主要介紹了使用Swift代碼實(shí)現(xiàn)iOS手勢(shì)解鎖、指紋解鎖的實(shí)現(xiàn)過(guò)程,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-06-06
iOS體驗(yàn)性優(yōu)化之RTL適配右滑返回的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于iOS體驗(yàn)性優(yōu)化之RTL適配右滑返回實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
iOS之基于FreeStreamer的簡(jiǎn)單音樂(lè)播放器示例
這篇文章主要介紹了iOS之基于FreeStreamer的簡(jiǎn)單音樂(lè)播放器示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
IOS LaunchScreen設(shè)置啟動(dòng)圖片與啟動(dòng)頁(yè)停留時(shí)間詳解
這篇文章主要介紹了IOS LaunchScreen設(shè)置啟動(dòng)圖片與啟動(dòng)頁(yè)停留時(shí)間詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
阿里數(shù)據(jù)iOS端啟動(dòng)速度優(yōu)化心得
本篇文章給大家詳細(xì)分析了阿里數(shù)據(jù)iOS端啟動(dòng)速度優(yōu)化的知識(shí)點(diǎn)以及心得,對(duì)此有興趣的朋友參考學(xué)習(xí)下吧。2018-02-02
iOS中的實(shí)時(shí)遠(yuǎn)程配置全紀(jì)錄
這篇文章主要給大家介紹了關(guān)于iOS中實(shí)時(shí)遠(yuǎn)程配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01

