iOS中使用FMDB对数据库的操作(一)

本文介绍了在iOS应用中使用FMDB进行数据库操作的基本方法,包括创建表、增删改查等核心功能,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS中对数据库FMDB的操作,建议是将方法写成单例,下面是对数据库的一些基本操作

一、在本地数据库中创建表
 //获得Documents目录路径
   
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];
   
// 文件路径
   
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"model.sqlite"];
   
// 实例化FMDataBase对象
   
_db = [FMDatabasedatabaseWithPath:filePath];

    [
_dbopen];
   
FMResultSet *rs = [_dbexecuteQuery:@"select count(*) as 'count' from sqlite_master where type ='table' and name = ?",@"numberData"];
   
while ([rs next])
    {
       
NSInteger count = [rs intForColumn:@"count"];
       
NSLog(@"isTableOK %ld", (long)count);
       
if (0== count){//不存在
           
break;
        }
       
else{//存在
            [
_dbclose];
           
return;
        }
    }
   
// 初始化数据表
   
NSString *personSql = @"CREATE TABLE 'numberData' ('numID' INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL ,'number' VARCHAR(255),'dateStr' VARCHAR(255),'qiNum' VARCHAR(255)) ";
    [
_dbexecuteUpdate:personSql];
   
    [
_dbclose];


二、增
 [_dbopen];
   
NSNumber *maxID = @(0);
   
FMResultSet *res = [_dbexecuteQuery:@"SELECT * FROM numberData "];
   
//获取数据库中最大的ID
   
while ([res next]) {
       
if ([maxID integerValue] < [[resstringForColumn:@"numID"]integerValue]) {
            maxID =
@([[resstringForColumn:@"numID"]integerValue]);
        }
    }
    maxID =
@([maxIDintegerValue] +1);
    [
_dbexecuteUpdate:@"INSERT INTO numberData(numID,number,dateStr,qiNum)VALUES(?,?,?,?)",[NSStringstringWithFormat:@"%@",maxID],Num.number,Num.dateStr,Num.qiNum];
    [
_dbclose];

三、删

      [_dbopen];
   
   
if ([_dbexecuteUpdate:@"DELETE FROM numberData WHERE dateStr = ?",dateStr]) {
        [
WSProgressHUDshowSuccessWithStatus:@"删除成功!"];
    }
else{
        [
WSProgressHUDshowErrorWithStatus:@"删除失败!"];
    }

    [
_dbclose];

四、改

    [_dbopen];
   
BOOL su = [_dbexecuteUpdate:@"UPDATE 'numberData' SET number = ?  WHERE dateStr = ? and qiNum = ?",newNum,dateStr,qiNum];
    [
_dbclose];

五、查
    [_dbopen];
   
NSMutableArray *dataArray = [[NSMutableArrayalloc]init];
   
FMResultSet *res = [_dbexecuteQuery:@"SELECT * FROM numberData"];
   
while ([res next]) {
       
Number *num = [[Numberalloc]init];
        num.
numID= [resstringForColumn:@"numID"];
        num.
number= [resstringForColumn:@"number"];
        num.
dateStr= [resstringForColumn:@"dateStr"];
        num.
qiNum= [resstringForColumn:@"qiNum"];
        [dataArray
addObject:num];
    }
    [
_dbclose];


这是个人初步接触FMDB时学的一些语句,后期对这些东西进行了封装,使用更加简单,具体请查看链接:

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值