你的位置:首页 > 操作系统

[操作系统]IOS开发之数据sqlite使用


一、引入工具包

  引入工具包libsqlite3.dylib,该工具包为C语言工具包。

二、代码操作数据库

1、创建并且链接数据库 

- (void) _connectDB{   //1>获取沙盒路径作为数据库创建时候的初始化路径  NSString * path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];  path=[path stringByAppendingPathComponent:@"new.sqlite"];  NSLog(@"%@",path);  //2>如果存在则打开当前链接,如果不存在则创建  if(SQLITE_OK==sqlite3_open(path.UTF8String, &sqlite)){    NSLog(@"数据库创建成功!");  }else {    NSLog(@"数据库创建失败!");  }  }

2、操作数据库 

/** * 创建表 */- (void) _createTable{  NSString *create=@" create table if not exists t_Person (id integer primary key autoincrement,name text,age integer,tel text)";  [self _execSql:create andTip:@"创建表操作"];  }/** * 插入数据操作 * * @param name 姓名 * @param age 年龄 * @param tel 电话 */- (void) _insertName:(NSString *) name andAge:(int )age andTel:(NSString *) tel{    NSString * insert=[NSString stringWithFormat:@" insert into t_Person(name,age,tel) values('%@',%d,'%@')",name,age,tel];  [self _execSql:insert andTip:@"插入操作"];  }/** * 执行数据库操作 * * @param sql 要执行的sql * @param tip 要执行的操作标题 */- (void) _execSql:(NSString *) sql andTip:(NSString *) tip{  char * result;  if(SQLITE_OK==sqlite3_exec(sqlite, sql.UTF8String, NULL, NULL, &result)){    NSLog(@"%@成功!",tip);  }else{    NSLog(@"%@失败!",tip);  }}

3、查询数据库 

/** * 读取数据 */- (void)_readData{  //1> 定义sql语句  NSString * sql=@"select id,name,age,tel from t_person ";    sqlite3_stmt * stmt=NULL;  //2> 检查语法的正确性  if(SQLITE_OK==sqlite3_prepare_v2(sqlite, sql.UTF8String, -1, &stmt, NULL)){      //3> 循环结果集取数据    while(sqlite3_step(stmt)==SQLITE_ROW){      //4>注意:取出来数据可以封装到集合中备用      int ID=sqlite3_column_int(stmt,0);      const unsigned char *name=sqlite3_column_text(stmt, 1);      int age=sqlite3_column_int(stmt, 2);      const unsigned char *tel=sqlite3_column_text(stmt, 3);      NSString * names=[NSString stringWithUTF8String:(const char *)name];      NSString * tels=[NSString stringWithUTF8String:(const char *)tel];      NSLog(@"%d,%@,%d,%@",ID,names,age,tels);        }    }}