数据库在IOS开发过程中的应用

数据库在IOS开发过程中的应用

+(NSArray *)selectAllNovel{

    NSMutableArray *results = [NSMutableArray array];

    

    //获得数据库指针

    sqlite3 *db = [DB openDB];

    //创建数据库的替身

    sqlite3_stmt *stmt = nil;

    //数据库查询语句

    NSString *sqlStr = [NSString  stringWithFormat:@"select nv_id,nv_author,nv_bookname,nv_score from Novel"];

    //[sqlStr UTF8String]转化为C语言类型   int nByte 最大长度限制

    //通过SQL语句进行查询,并且将查询结果赋值给替身

    int result = sqlite3_prepare_v2(db, [sqlStr UTF8String], -1, &stmt, NULL);//检验SQL语句是否正确,如果正确就往替身赋值

    //如果得到的信息不是0 就进去查找

    if (result == SQLITE_OK) {

        while (sqlite3_step(stmt) == SQLITE_ROW) {

            //int iCol SQL语句对应列名的数据,,,,取第几列的东西

            int  nid = sqlite3_column_int(stmt, 0);

            const unsigned char *nauthor = sqlite3_column_text(stmt, 1);

            const unsigned char *bookName = sqlite3_column_text(stmt, 2);

            float nscore = sqlite3_column_double(stmt, 3);

            

            NSString *author = [NSString stringWithUTF8String:(const char *)nauthor];

            NSString *bookname = [NSString stringWithUTF8String:(const char *)bookName];

    

            DBModel *model = [DBModel moveKeepDataWithNid:nid author:author bookname:bookname score:nscore];

            

            [results addObject:model];

        }

    }

    sqlite3_finalize(stmt);

    return  results;

}

//通过id查询

+(DBModel *)selectWithId:(NSInteger)num{

    sqlite3 *db = [DB openDB];

    //创建替身

    sqlite3_stmt *stmt = nil;

    //数据库查询语句

    NSString *sqlStr = [NSString  stringWithFormat:@"select nv_id,nv_author,nv_bookname,nv_score from Novel where nv_id=%d",num];

    //通过SQL语句进行查询,并且将查询结果赋值给替身

    int result = sqlite3_prepare_v2(db, [sqlStr UTF8String], -1, &stmt, NULL);//检验SQL语句是否正确,如果正确就往替身赋值

    //如果得到的信息不是0 就进去查找

    if (result == SQLITE_OK) {

        if (sqlite3_step(stmt) == SQLITE_ROW) {

            int  nid = sqlite3_column_int(stmt, 0);

            const unsigned char *nauthor = sqlite3_column_text(stmt, 1);

            const unsigned char *bookName = sqlite3_column_text(stmt, 2);

            float nscore = sqlite3_column_double(stmt, 3);

            

            NSString *author = [NSString stringWithUTF8String:(const char *)nauthor];

            NSString *bookname = [NSString stringWithUTF8String:(const char *)bookName];

            

            DBModel *model = [DBModel moveKeepDataWithNid:nid author:author bookname:bookname score:nscore];

            sqlite3_finalize(stmt);

            return model;

        }

    }

    return  nil;

}

//插入

+(void)insterWithModel:(DBModel*)model{

    //获取指针

    sqlite3 *db = [DB openDB];

    NSString *sqlStr = [NSString  stringWithFormat:@"insert into Novel (nv_id,nv_author,nv_bookname,nv_score)  values(%d,'%@','%@',%f)",model.nid,model.author,model.bookname,model.score];

    //通过SQL语句进行查询,并且将查询结果赋值给替身

    int result = sqlite3_exec(db, [sqlStr UTF8String], NULL, NULL, NULL);

    if (result == SQLITE_OK) {

        NSLog(@"添加成功");

    }


}

//根据id修改书名

+(void)updateNovelWith:(NSInteger)num name:(NSString *)name{

    sqlite3 *db = [DB openDB];

    NSString *sqlStr = [NSString  stringWithFormat:@"update Novel set nv_bookname ='%@' where nv_id = %d",name,num];

    //通过SQL语句进行查询,并且将查询结果赋值给替身

    int result = sqlite3_exec(db, [sqlStr UTF8String], NULL, NULL, NULL);

    if (result == SQLITE_OK) {

        NSLog(@"修改成功");

    }


}

+(void)delectNovelWith:(NSInteger)num{

    sqlite3 *db = [DB openDB];

    NSString *sqlStr = [NSString stringWithFormat:@"delete from Novel where nv_id = %d",num];

    int result = sqlite3_exec(db, [sqlStr UTF8String], NULL, NULL, NULL);

    if (result == SQLITE_OK) {

        NSLog(@"删除成功");

    }

}



@end


DBModel .m

@implementation DBModel

- (void)dealloc

{

    [_author release];

    [_bookname release];

    [super dealloc];

}


- (id)initWithNid:(NSInteger)nid author:(NSString *)author bookname:(NSString *)bookname score:(CGFloat)score

{

    self = [super init];

    if (self) {

        self.nid = nid;

        self.author = author;

        self.bookname = bookname;

        self.score = score;

    }

    return self;

}


+ (DBModel *)moveKeepDataWithNid:(NSInteger)nid author:(NSString *)author bookname:(NSString *)bookname score:(CGFloat)score{

    DBModel *data = [[DBModel alloc ]initWithNid:nid author:author bookname:bookname score:score];

    return data;

}@end




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值