数据库SQL

DataBaseHandle

单例

+ (instancetype)shareDataBaseHandle
{
    static DataBaseHandle *handle;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{

    handle = [[DataBaseHandle alloc] init];
});
return handle;
}

数据库:

sqlite3 *dbPoint;

打开数据库:

- (void)openDB //打开数据库
{
    NSString *sandBoxPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES) lastObject];    
    NSString *dbPath = [sandBoxPath stringByAppendingPathComponent:@"0825Student.sqlite"];
    int result = sqlite3_open([dbPath UTF8String], &dbPoint);
    if (result == SQLITE_OK) {
        NSLog(@"开启成功");
    } else{
        NSLog(@"开启失败");
    }
    NSLog(@"%@", dbPath);
    }


[[DataBaseHandle shareDataBaseHandle] openDB];

创建数据表

- (void)createTable{
    NSString *sqlStr = @"create table if not exists stu(number integer primary key autoincrement, sex text, name text, age integer)";
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"创建成功");
    } else{
        NSLog(@"创建失败");
    }
}


[[DataBaseHandle shareDataBaseHandle] createTable];

插入数据

- (void)insertStu:(Students *)stu{ 
    NSString *sqlStr = [NSString stringWithFormat:@"insert into stu (name, sex, age) values ('%@','%@','%ld')", stu.name, stu.sex, stu.age];
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"Add Success");
    }else {
        NSLog(@"Add fail");
    }
}


[[DataBaseHandle shareDataBaseHandle] insertStu:stu];

删除数据

删除分为两种:
一种是物理删除,使用delete语句吧数据全部删除掉
另一种是updata,这种事通过更改某个条件,在查找过程中找不到,但是数据内容还在

- (void)deleteStu:(Students *)stu{
    NSString *sqlStr = [NSString stringWithFormat:@"delete from stu where name = %@", stu.name];
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"执行成功");
    }else {
        NSLog(@"执行失败");
    }
}

- (void)updataStu:(Students *)stu{
    NSString *sqlStr = [NSString stringWithFormat:@"update stu  set name = %@, sex = %@, age = %ld where number = %d", stu.name,stu.sex, stu.age, 1];
//    主见不能更新
    int result = sqlite3_exec(dbPoint, [sqlStr UTF8String], nil, nil, nil);
    if (result == SQLITE_OK) {
        NSLog(@"修改成功");
    }else{
        NSLog(@"修改失败");
    }   
}


[[DataBaseHandle shareDataBaseHandle] updataStu:stu];

搜索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值