标签:
手机移动客户端作为软件需要使用数据库来存取数据,iOS使用的数据库是轻量型数据库sqlite,下面是使用sqlite进行简单的增删改查操作.
Sqlite最新版本是3.0,使用前需要导入libsqlite3.0.dylib
一:创建数据库表
-(void)createTable { //创建sqlite3对象 sqlite3 *sqlite=nil; //获取文件路径 NSString *filePath=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/data.sqlite"]; NSLog(@"%@",filePath); //打开数据库 int result=sqlite3_open([filePath UTF8String], &sqlite); if (result!=SQLITE_OK) { NSLog(@"打开失败"); return; } //SQL语句 NSString *sql=@"create table if not exists user(username text primary key,password text,email text)"; //创建错误信息 char *error; result=sqlite3_exec(sqlite, [sql UTF8String], NULL, NULL, &error); if (result!=SQLITE_OK) { NSLog(@"%s",error); return; } //关闭数据库 sqlite3_close(sqlite); }
二:数据库中插入数据
-(void)insertTable { sqlite3 *sqlite=nil; sqlite3_stmt *stmt=nil; NSString *filePath=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/data.sqlite"]; //打开数据库 int result=sqlite3_open([filePath UTF8String], &sqlite); if (result!=SQLITE_OK) { NSLog(@"打开失败"); return; } //向数据库中插入文件,大多数情况下是由用户输入的内容,所以sql语句使用?占位符 NSString *sql=@"insert into user(username,password,email) values (?,?,?)"; //编译sql语句 sqlite3_prepare(sqlite, [sql UTF8String], -1, &stmt, NULL); NSString *username=@"tom"; NSString *password=@"asd"; NSString *email=@"yshjbw@163.com"; //绑定第一个数据 sqlite3_bind_text(stmt, 1, [username UTF8String], -1, NULL); //第二个 sqlite3_bind_text(stmt, 2, [password UTF8String], -1, NULL); //第三个 sqlite3_bind_text(stmt, 3, [email UTF8String], -1, NULL); //执行SQL语句 result=sqlite3_step(stmt); if (result==SQLITE_ERROR||result==SQLITE_MISUSE) { NSLog(@"执行SQL语句失败"); return; } //关闭数据库句柄 sqlite3_finalize(stmt); sqlite3_close(sqlite); NSLog(@"插入成功"); }
三:查询
-(void)selectTable { sqlite3 *sqlite=nil; sqlite3_stmt *stmt=nil; NSString *filePath=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/data.sqlite"]; //打开数据库 int result=sqlite3_open([filePath UTF8String], &sqlite); if (result!=SQLITE_OK) { NSLog(@"打开失败"); return; } //向数据库中插入文件,大多数情况下是由用户输入的内容,所以sql语句使用?占位符 NSString *sql=@"select username,password,email from user where username=‘tom‘"; //编译sql语句 result=sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL); if (result!=SQLITE_OK) { return; } //往占位符上绑定数据 NSString *username=@"tom"; sqlite3_bind_text(stmt, 1, [username UTF8String], -1, NULL); //查询数据 result=sqlite3_step(stmt); //若result=SQLITE_ROW,说明有结果,获取结果 while (result==SQLITE_ROW) { char *username=(char *)sqlite3_column_text(stmt, 0); char *password=(char *)sqlite3_column_text(stmt, 1); char *email=(char *)sqlite3_column_text(stmt, 2); NSString *userName=[NSString stringWithCString:username encoding:NSUTF8StringEncoding]; NSString *passWord=[NSString stringWithCString:password encoding:NSUTF8StringEncoding]; NSString *Email=[NSString stringWithCString:email encoding:NSUTF8StringEncoding]; NSLog(@"%@,%@,%@",userName,passWord,Email); result=sqlite3_step(stmt); } //关闭数据库句柄 sqlite3_finalize(stmt); sqlite3_close(sqlite); NSLog(@"查询成功"); }
一直想写些有关数据存储方面的知识,但是这个是自己的弱项,憋了这么久,就憋出个这,唉,跟充数一样。
标签:
原文地址:http://www.cnblogs.com/kyuubee/p/4824221.html