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 ");
}
}
이상 은 본문의 전체 내용 이 므 로 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.