您的位置:首页 > 数据库

sqlite3学习

2015-10-14 14:15 288 查看
</pre><pre name="code" class="objc">
</pre><pre name="code" class="objc">
</pre><pre name="code" class="objc">#import "ViewController.h"
#import "sqlite3.h"

@interface ViewController ()
- (IBAction)insert:(id)sender;
- (IBAction)delete:(id)sender;
- (IBAction)update:(id)sender;

@property (nonatomic,assign) sqlite3 *db;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

//  NSString *name = [NSString stringWithFormat:@""];
//NSString *sql = [NSString stringWithFormat:@"insert into t_class (name) valus]
// Do any additional setup after loading the view, typically from a nib.
NSString *path = NSHomeDirectory();//主目录
NSLog(@"NSHomeDirectory:%@",path);

NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

NSString *filePath = [cachePath stringByAppendingString:@"student.sqlite"];

sqlite3 *db = nil;

if (sqlite3_open(filePath.UTF8String,&db)== SQLITE_OK) {
NSLog(@"success");
}else{
NSLog(@"failed");
}
_db = db;

NSString *sql = @"create table t_makeup (id integer primary key autoincrement,name text)";

[self execWithsql:sql];
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (IBAction)insert:(id)sender {

NSString *sql = @"insert into t_makeup (name) values ('zhangsan');";
[self execWithsql:sql];
}

- (IBAction)delete:(id)sender {

NSString *sql = @"delete from t_makeup";
[self execWithsql:sql];

}

- (IBAction)update:(id)sender {

NSString *sql = @"update t_makeup set name = 'zhangsan'";
[self execWithsql:sql];
}

- (IBAction)select:(id)sender {

NSString *sql = @"select * from t_makeup";
sqlite3_stmt *stmt;
if(sqlite3_prepare_v2(_db, sql.UTF8String, -1, &stmt, NULL)==SQLITE_OK)
{
NSLog(@"success");
if (sqlite3_step(stmt) == SQLITE_ROW) {
NSString *name = [NSString stringWithUTF8String: sqlite3_column_text(stmt, 1) ];

NSLog(@"%@",name);

}
}

}

-(void)execWithsql:(NSString *)sql//抽取的方法
{

char *errmsg;
sqlite3_exec(_db, sql.UTF8String, NULL, NULL, &errmsg);
if (errmsg) {
NSLog(@"failed");
}else
{
NSLog(@"success");
}
}
@end


以上是基本的在xcode中实现sqlite的insert create update delete 等基本操作。

PS 今天遇到的几个小问题:
1,xcode nslog打印不出来是因为没把控制台调出来orz。。
解决方案:command shift +c
2,数据库无法同步问题
解决方案:不要写table。。直接上表名
3.db赋值为0 必须将_db = db写在创建了表的代码之后!!!

</pre><pre name="code" class="objc"> sqlite3 *db = nil;

if (sqlite3_open(filePath.UTF8String,&db)== SQLITE_OK) {
NSLog(@"success");
}else{
NSLog(@"failed");
}
_db = db;


    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: