前端之家收集整理的这篇文章主要介绍了
SQLite3 代码库,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先导入sqlite3,而我们访问sqlite3需要通过一个API函数,这个函数在libsqlite3.dylib文件中
我们需要把这个动态库给加入到项目
方法是在Grops&Files窗格中选择Frame这个文件夹,然后从Project菜单中选择Add toproject。。。然后通过路径/Develerper/Platform/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulatorX.Y.Sdk/usr/lib
找到libsqlite3.dylib
在.h文件创建
#definekFilename@"data.sqlite3"
sqlite3*database;//创建数据库
- (NSString*)dataFilePath;//找数据库的文件位置
在.m文件中
1.找数据库文件
- (NSString *)dataFilePath{
NSArray *paths =NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectory = [pathsobjectAtIndex:0];
return [documentsDirectorystringByAppendingPathComponent:kFilename];
}
2.打开数据库文件,如果还没有那么就创建一个
- (void)viewDidLoad{
if (sqlite3_open([[self dataFilePath] UTF8String],&database)!= sqlITE_OK)//打开数据库
{
sqlite3_close(database);//异常就关闭
NSAssert(0,@"Failed to open database");//设置一个断言,这样避免程序出错了,程序员还不知道
}
char *errorMsg;//设置一个错误存储器
// 创建表格名为 files 第一列为row 类型为intget并且为主键,第二列为file-data,类型为text
NSString *createsql = @"CREATE TABLE IF NOT EXISTS FIELDS (ROWINTEGER PRIMARY KEY,FIELD_DATA TEXT);";
//用sqlite3_exec把创建的表传递给数据库(sqlite3_exec用于执行不返回数据的操作,如更新,插入和删除操作
if (sqlite3_exec (database,[createsqlUTF8String],NULL,&errorMsg) !=sqlITE_OK)
sqlite3_close(database);
NSAssert1(0,@"Error creating table: %s",errorMsg);
//查询操作比较复杂,必须先输入命令
NSString *query = @"SELECT ROW,FIELD_DATA FROM FIELDS ORDER BYROW";//
sqlite3_stmt *statement;
//sqlite3_prepare_v2 准备并且检查sql语句是否完成,
if (sqlite3_prepare_v2( database,[query UTF8String],-1,&statement,nil) == sqlITE_OK)
while (sqlite3_step(statement) == sqlITE_ROW) //执行sql语句
{//单步调试并从数据库中检索到int和nsstring的
int row = sqlite3_column_int(statement,0);//column是列的意思
char *rowData = (char *)sqlite3_column_text(statement,1);
//这里定义了一个和输出口名字一样的string(本例中的输出口为field1)
//然后通过控制器调用valueFoeKey这个函数来把输出口的TextField和你创建的绑定到一块
//这样你就可以直接调用输出口中的内容-----很美妙的设计方式
NSString *fieldName = [[NSString alloc]
initWithFormat:@"field%d",row];
NSString *fieldValue = [[NSString alloc]
initWithUTF8String:rowData];
UITextField *field = [self valueForKey:fieldName];
field.text = fieldValue;
[fieldName release];
[fieldValue release];
}
sqlite3_finalize(statement);
} 原文链接:https://www.f2er.com/sqlite/202282.html