objective-c --单知识点运用---FMDatabase -- -数据库操作

一、关于使用第三方库 -- FMDatabase --进行数据库操作(可以参考自己项目:69-74天-项目实战--新闻客户端

说明一

1:FMDatabase只用于sqlite。

2:需要导入 libsqlite3.dylib库

3:假如查询的是整个表,那么我们可以使用以下语句来获得列的值。下面的new是一个对象,有着和表的列对应的属性名称。

   //查询本地数据库

   FMResultSet * rs = [dbexecuteQuery:@"select * from news"];

   //遍历本地循环

   while ([rsnext]) {

       YZBNews * new = [[YZBNewsalloc]init];

        new.title = [rsstringForColumn:@"title"];

    }

4:当我们需要插入数据的时候,不要用下面  1) 的写法,因为这样数据库会认为没有带单引号,所以是插入失败的。应该使用 2) 的方式。

  1)NSString * sql =[NSString stringWithFormat:@"insert into messages values(%@, %@, %@, %d)",uname, strDate, body, 0] ;   

             [self.db executeUpdate:sql];

       2) BOOL b = [self.db executeUpdate:@"insert into messages values(?, ?,?, ?)",uname, strDate, body, @"0"];

      


    


3:操作步骤大致如下:

//使用第三方操作数据库 --生成sqlite数据库

   NSArray * paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

   NSString * path = paths[0];

    path = [pathstringByAppendingPathComponent:@"news.db"];

   NSLog(@"%@", path);

   self.db = [FMDatabasedatabaseWithPath:path];

   BOOL b = [self.dbopen];    

   //数据库打开失败就提示

   if (!b) {

        [YZBAlertshowAlert:self.window.rootViewController :@"数据库打开失败"];

       returnNO;

    }

   //创建数据库表

   NSString * sql =@"create table if not exists news(idid integer, title text, subtitle text, picture text, content text, author text, flid integer, time text, clicks integer, pic blob)";

    b = [self.dbexecuteUpdate:sql];

   if (!b) {

        [YZBAlertshowAlert:self.window.rootViewController :@"创建news表失败" ];

    }



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值