sqlite3_demo

前端之家收集整理的这篇文章主要介绍了sqlite3_demo前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

//记得先导入第三方类 sqlite3@H_502_2@

#import @H_502_2@<UIKit/UIKit.h>


#import @H_502_2@<sqlite3.h>


@interface@H_502_2@ ViewController : UIViewController@H_502_2@

{

sqlite3@H_502_2@ *_dataBase;

}

@property@H_404_33@ (@H_502_2@retain@H_404_33@,@H_502_2@nonatomic@H_404_33@) @H_502_2@IBOutlet@H_404_33@ @H_502_2@UITextView@H_502_2@@H_404_33@ *textView;@H_502_2@


502_2@nonatomic@H_404_33@) @H_502_2@IBOutlet@H_404_33@ @H_502_2@UITextField@H_502_2@@H_404_33@ *textFieldName;@H_502_2@


502_2@nonatomic@H_404_33@) @H_502_2@IBOutlet@H_404_33@ @H_502_2@UITextField@H_502_2@@H_404_33@ *textFieldAge;@H_502_2@


502_2@nonatomic@H_404_33@) @H_502_2@IBOutlet@H_404_33@ @H_502_2@UITextField@H_502_2@@H_404_33@ *textFieldSex;@H_502_2@


502_2@nonatomic@H_404_33@) @H_502_2@IBOutlet@H_404_33@ @H_502_2@UITextField@H_502_2@@H_404_33@ *textFieldiID;@H_502_2@


- (IBAction@H_502_2@)saveButton:(id@H_502_2@)sender;


- (IBAction@H_502_2@)getButton:(id@H_502_2@)sender;


- (BOOL@H_502_2@)initDataBase:(NSString@H_502_2@ *)dbName;


- (BOOL@H_502_2@)creatChannelsTable;


- (BOOL@H_502_2@) insertOneChannel:(NSString@H_502_2@ *)name

cAge:(NSInteger@H_502_2@ )age

caddress:(NSString@H_502_2@ *)addr

cSex:(NSString@H_502_2@ *)sex;

//@H_502_2@返回值 @H_502_2@ 可变数组 @H_502_2@(数组内存放多个字典 @H_502_2@每个字典存储表中的一行的数据)

- (NSMutableArray@H_502_2@ *)getAlldata;

@end

#import @H_502_2@"ViewController.h"


@interface@H_502_2@@H_404_33@ @H_502_2@ ViewController@H_404_33@ ()@H_502_2@


@end


@implementation@H_502_2@ ViewController


- (void@H_502_2@)viewDidLoad

{

@H_404_33@ [@H_502_2@super@H_502_2@@H_404_33@ @H_502_2@viewDidLoad@H_404_33@];@H_502_2@

@H_404_33@ @H_502_2@//调用函数@H_502_2@

@H_404_33@ [@H_502_2@self@H_502_2@@H_404_33@ @H_502_2@initDataBase@H_404_33@:@H_502_2@@"member.db"@H_502_2@@H_404_33@];@H_502_2@

}



- (IBAction@H_502_2@)saveButton:(id@H_502_2@)sender

{

NSString@H_502_2@ *pName = self@H_502_2@.textFieldName@H_502_2@.text@H_502_2@;

NSInteger@H_502_2@ pAge = [self@H_502_2@.textFieldAge@H_502_2@.text@H_502_2@ integerValue@H_502_2@];

NSString@H_502_2@ *pAD = self@H_502_2@.textFieldiID@H_502_2@.text@H_502_2@;

NSString@H_502_2@ *pSex = self@H_502_2@.textFieldSex@H_502_2@.text@H_502_2@;

@H_404_33@ [@H_502_2@self@H_502_2@@H_404_33@ @H_502_2@insertOneChannel@H_404_33@:pName @H_502_2@cAge@H_404_33@:pAge @H_502_2@caddress@H_404_33@:pAD @H_502_2@cSex@H_404_33@:pSex];@H_502_2@

}


- (IBAction@H_502_2@)getButton:(id@H_502_2@)sender

{

@H_404_33@ @H_502_2@NSMutableString@H_404_33@ *pResultStr = [@H_502_2@NSMutableString@H_404_33@ @H_502_2@string@H_502_2@@H_404_33@];@H_502_2@

NSMutableArray@H_502_2@ *pArr = [self@H_502_2@ getAlldata@H_502_2@];

for@H_502_2@ (int@H_502_2@ i =0@H_502_2@; i < pArr.count@H_502_2@; i++)

{

NSMutableDictionary@H_502_2@ *pTempDic = [pArr objectAtIndex@H_502_2@:i];

[pResultStr appendFormat@H_502_2@:@"%@"@H_502_2@,[pTempDic objectForKey@H_502_2@:@"name"@H_502_2@]];

[pResultStr appendString@H_502_2@:@"\t"@H_502_2@];

[pResultStr appendFormat@H_502_2@:@"%@"@H_502_2@,[pTempDic objectForKey@H_502_2@:@"age"@H_502_2@]];

[pResultStr appendString@H_502_2@:@"\t"@H_502_2@];

[pResultStr appendFormat@H_502_2@:@"%@"@H_502_2@,[pTempDic objectForKey@H_502_2@:@"add"@H_502_2@]];

[pResultStr appendString@H_502_2@:@"\t"@H_502_2@];

[pResultStr appendFormat@H_502_2@:@"%@"@H_502_2@,[pTempDic objectForKey@H_502_2@:@"sex"@H_502_2@]];

[pResultStr appendString@H_502_2@:@"\n"@H_502_2@];

}

self@H_502_2@.textView@H_502_2@.text@H_502_2@ = pResultStr;

}

/*

@H_502_2@接口说明

@H_502_2@返回值:数据是否创建成功

@H_502_2@参数:要创建的数据库名称

*/

- (BOOL@H_502_2@)initDataBase:(NSString@H_502_2@ *)dbName

{

@H_404_33@ @H_502_2@//查找沙河路径@H_502_2@

@H_404_33@ @H_502_2@NSArray@H_502_2@@H_404_33@ *paths = @H_502_2@NSSearchPathForDirectoriesInDomains@H_404_33@(@H_502_2@NSDocumentDirectory@H_404_33@,@H_502_2@NSUserDomainMask@H_404_33@,@H_502_2@YES@H_502_2@@H_404_33@);@H_502_2@

NSString@H_502_2@ *filePath = [paths objectAtIndex@H_502_2@:0@H_502_2@];

NSString@H_502_2@ *path = [filePath stringByAppendingPathComponent@H_502_2@:dbName];

NSLog@H_502_2@(@"path = %@"@H_502_2@,path);

@H_404_33@ @H_502_2@//打开文件@H_502_2@

if@H_502_2@ (sqlite3_open@H_502_2@([path UTF8String@H_502_2@],&_dataBase@H_502_2@) != sqlITE_OK@H_502_2@)

{

NSAssert@H_502_2@(NO@H_502_2@,@"@H_502_2@打开数据失败@H_502_2@"@H_502_2@);

return@H_502_2@ NO@H_502_2@;

}

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"打开数据成功@H_502_2@"@H_404_33@);@H_502_2@

/*@H_502_2@

创建表@H_502_2@ 待实现@H_502_2@

*/

@H_404_33@ [@H_502_2@self@H_502_2@@H_404_33@ @H_502_2@creatChannelsTable@H_404_33@];@H_502_2@

@H_404_33@ @H_502_2@return@H_404_33@ @H_502_2@ YES@H_404_33@;@H_502_2@

}


- (BOOL@H_502_2@)creatChannelsTable

{

@H_404_33@ @H_502_2@/*创建表得@H_502_2@sql语句@H_502_2@*/

@H_404_33@ @H_502_2@char@H_502_2@@H_404_33@ *sql = @H_502_2@"create table if not exists member(id integer primary key autoincrement,name text,age integer,addr text,sex text)"@H_404_33@;@H_502_2@

@H_404_33@ @H_502_2@sqlite3_stmt@H_404_33@ *stmt;@H_502_2@

@H_502_2@//@H_502_2@判断编译语句结果是不是成功

if@H_502_2@ (sqlite3_prepare_v2@H_502_2@(_dataBase@H_502_2@,sql,-1@H_502_2@,&stmt,nil@H_502_2@) != sqlITE_OK@H_502_2@)

{

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"创建表的@H_502_2@sql语句编译失败@H_502_2@"@H_404_33@);@H_502_2@

return@H_502_2@ NO@H_502_2@;

}

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"创建表的@H_502_2@sql语句编译成功@H_502_2@"@H_404_33@);@H_502_2@

@H_502_2@//@H_502_2@结果集中返回得列数

int@H_502_2@ success = sqlite3_step@H_502_2@(stmt);

@H_502_2@//@H_502_2@判断是不是完成执行

if@H_502_2@ (success != sqlITE_DONE@H_502_2@)

{

NSLog@H_502_2@(@"@H_502_2@创建表失败@H_502_2@"@H_502_2@);

return@H_502_2@ NO@H_502_2@;

}

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@( @H_502_2@@" 创建表成功@H_502_2@"@H_404_33@);@H_502_2@

@H_404_33@ @H_502_2@return@H_404_33@ @H_502_2@ YES@H_404_33@;@H_502_2@

}


@H_502_2@返回值 @H_502_2@ : @H_502_2@插入数据是不是成功

@H_502_2@参数:往表内要插入的数据 @H_502_2@对应绑定参数

*/

- (BOOL@H_502_2@) insertOneChannel:(NSString@H_502_2@ *)name

cAge:(NSInteger@H_502_2@ )age

caddress:(NSString@H_502_2@ *)addr

cSex:(NSString@H_502_2@ *)sex

{

@H_404_33@ @H_502_2@sqlite3_stmt@H_404_33@ *stmt;@H_502_2@

@H_404_33@ @H_502_2@char@H_502_2@@H_404_33@ *sql = @H_502_2@"INSERT OR REPLACE INTO member(name,age,addr,sex) VALUES(?,?,?)"@H_404_33@;@H_502_2@

int@H_502_2@ success = sqlite3_prepare_v2@H_502_2@(_dataBase@H_502_2@,nil@H_502_2@);

if@H_502_2@ (success != sqlITE_OK@H_502_2@)

{

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"插入参数的@H_502_2@sql语句编译失败@H_502_2@"@H_404_33@);@H_502_2@

return@H_502_2@ NO@H_502_2@;

}

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"插入参数的@H_502_2@sql语句编译成功@H_502_2@"@H_404_33@);@H_502_2@

sqlite3_bind_text@H_502_2@(stmt, 1@H_502_2@,[name UTF8String@H_502_2@],nil@H_502_2@);

sqlite3_bind_int@H_502_2@(stmt, 2@H_502_2@,age);

sqlite3_bind_text@H_502_2@(stmt, 3@H_502_2@,[addr UTF8String@H_502_2@],nil@H_502_2@);

@H_404_33@ @H_502_2@sqlite3_bind_text@H_404_33@(stmt,@H_502_2@4@H_502_2@@H_404_33@,[sex @H_502_2@ UTF8String@H_404_33@],-@H_502_2@1@H_502_2@@H_404_33@,@H_502_2@nil@H_502_2@@H_404_33@);@H_502_2@

success = sqlite3_step@H_502_2@(stmt);

@H_502_2@//@H_502_2@重新设置一个已经准备好得状态对象

@H_404_33@ @H_502_2@sqlite3_finalize@H_404_33@(stmt);@H_502_2@

if@H_502_2@ (success == sqlITE_ERROR@H_502_2@)

{

NSLog@H_502_2@(@"@H_502_2@插入数据失败@H_502_2@"@H_502_2@) ;

return@H_502_2@ NO@H_502_2@;

}

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"插入数据成功@H_502_2@"@H_404_33@);@H_502_2@

@H_404_33@ @H_502_2@return@H_404_33@ @H_502_2@ YES@H_404_33@;@H_502_2@

}


- (NSMutableArray@H_502_2@ *)getAlldata

{

@H_404_33@ @H_502_2@NSMutableArray@H_404_33@ *allDatas =[[[@H_502_2@NSMutableArray@H_404_33@ @H_502_2@alloc@H_502_2@@H_404_33@]@H_502_2@init@H_502_2@@H_404_33@]@H_502_2@autorelease@H_502_2@@H_404_33@];@H_502_2@

sqlite3_stmt@H_502_2@ *stmt = nil@H_502_2@;

@H_404_33@ @H_502_2@char@H_502_2@@H_404_33@ *sql = @H_502_2@"SELECT * FROM member"@H_404_33@;@H_502_2@

if@H_502_2@ (sqlite3_prepare_v2@H_502_2@(_dataBase@H_502_2@,27)"> @H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"读取表中的@H_502_2@sql文件编译失败@H_502_2@"@H_404_33@);@H_502_2@

return@H_502_2@ nil@H_502_2@;

}

@H_404_33@ @H_502_2@NSLog@H_502_2@@H_404_33@(@H_502_2@@"读取表中的@H_502_2@sql文件编译成功@H_502_2@"@H_404_33@);@H_502_2@

while@H_502_2@ (sqlite3_step@H_502_2@(stmt) == sqlITE_ROW@H_502_2@)

{

@H_404_33@ @H_502_2@NSMutableDictionary@H_404_33@ *tempDic = [[@H_502_2@NSMutableDictionary@H_404_33@ @H_502_2@alloc@H_502_2@@H_404_33@]@H_502_2@init@H_502_2@@H_404_33@];@H_502_2@

char@H_502_2@ *pName = (char@H_502_2@ *)sqlite3_column_text@H_502_2@(stmt,1@H_502_2@);

if@H_502_2@ (pName)

{

[tempDic setObject@H_502_2@:[NSString@H_502_2@ stringWithUTF8String@H_502_2@:pName] forKey@H_502_2@:@"name"@H_502_2@];

}

NSInteger@H_502_2@ nAge = (int@H_502_2@)sqlite3_column_int@H_502_2@(stmt,2@H_502_2@);

if@H_502_2@ (nAge)

{

[tempDic setObject@H_502_2@:[NSNumber@H_502_2@ numberWithInteger@H_502_2@:nAge] forKey@H_502_2@:@"age"@H_502_2@];

}

char@H_502_2@ *pAdd = (char@H_502_2@ *)sqlite3_column_text@H_502_2@(stmt,3@H_502_2@);

if@H_502_2@ (pName)

{

@H_404_33@ [tempDic @H_502_2@setObject@H_404_33@:[@H_502_2@NSString@H_502_2@@H_404_33@ @H_502_2@stringWithUTF8String@H_404_33@:pAdd] @H_502_2@forKey@H_404_33@:@H_502_2@@"add"@H_502_2@@H_404_33@];@H_502_2@

}

char@H_502_2@ *pSex = (char@H_502_2@ *)sqlite3_column_text@H_502_2@(stmt,4@H_502_2@);

if@H_502_2@ (pName)

{

@H_404_33@ [tempDic @H_502_2@setObject@H_404_33@:[@H_502_2@NSString@H_502_2@@H_404_33@ @H_502_2@stringWithUTF8String@H_404_33@:pSex] @H_502_2@forKey@H_404_33@:@H_502_2@@"sex"@H_502_2@@H_404_33@];@H_502_2@

}

[allDatas addObject@H_502_2@:tempDic];

[tempDic release@H_502_2@];

}

@H_404_33@ @H_502_2@sqlite3_finalize@H_404_33@(stmt);@H_502_2@

return@H_502_2@ allDatas;

}

- (void@H_502_2@)touchesBegan:(NSSet@H_502_2@ *)touches withEvent:(UIEvent@H_502_2@ *)event

{

[self@H_502_2@.view@H_502_2@ endEditing@H_502_2@:YES@H_502_2@];

}

- (void@H_502_2@)didReceiveMemoryWarning

{

@H_404_33@ [@H_502_2@super@H_502_2@@H_404_33@ @H_502_2@didReceiveMemoryWarning@H_404_33@];@H_502_2@

}

- (void@H_502_2@)dealloc

{

@H_404_33@ [@H_502_2@_textFieldAge@H_404_33@ @H_502_2@release@H_502_2@@H_404_33@];@H_502_2@

@H_404_33@ [@H_502_2@_textFieldiID@H_404_33@ @H_502_2@release@H_502_2@@H_404_33@];@H_502_2@

@H_404_33@ [@H_502_2@_textFieldName@H_404_33@ @H_502_2@release@H_502_2@@H_404_33@];@H_502_2@

@H_404_33@ [@H_502_2@_textFieldSex@H_404_33@ @H_502_2@release@H_502_2@@H_404_33@];@H_502_2@

@H_404_33@ [@H_502_2@_textView@H_404_33@ @H_502_2@ release@H_502_2@@H_404_33@];@H_502_2@

[super@H_502_2@ dealloc@H_502_2@];

}

@end

猜你在找的Sqlite相关文章