sqlite3学习

</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;


    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值