iOS--将 .sql 文件 写入数据库

可爱的后台乐哥给我一份.sql 文件,里面是sql 语句,意思是叫我将.sql文件运行,添加到数据库中。就比较方便,有方法可以直接运行.sql 文件,iOS 方面,我目前没有找到可以直接调用.sql 文件的方法,所以使用了以下这种笨拙的方式进行写入数据库。

后台给我的内容是这样的:

/* app参数表 存放全局属性*/
CREATE TABLE IF NOT EXISTS APP_PARAMETER(
   PARAMETER_KEY     VARCHAR(50)   NOT NULL,   /* 参数键 */
   PARAMETER_VALUE   VARCHAR(150)  NOT NULL,   /* 参数值 */
   PARAMETER_EXPLAIN VARCHAR(150),             /* 参数说明 */
   PRIMARY KEY (PARAMETER_KEY)
);

/* 出租类型表 */
CREATE TABLE IF NOT EXISTS RENT_TYPE(
   RENT_TYPE_ID    TINYINT(1)  NOT NULL,  /* 出租类型id */
   RENT_TYPE_NAME  VARCHAR(10) NOT NULL,  /* 出租类型名称 */
   PRIMARY KEY (RENT_TYPE_ID)
);

DELETE FROM APP_PARAMETER;
DELETE FROM RENT_TYPE;

INSERT INTO APP_PARAMETER (PARAMETER_KEY,PARAMETER_VALUE,PARAMETER_EXPLAIN) VALUES ('FACTORY_MAX_PAGE',           '5',            '最大图片显示张数');
INSERT INTO APP_PARAMETER (PARAMETER_KEY,PARAMETER_VALUE,PARAMETER_EXPLAIN) VALUES ('FACILITIES_MAX_NUM',         '4',            '配套设施最大数');

具体步骤:

1、 将文件放到 Bundle 中,获取文件路径。

2、通过编码转换,将文件中的内容转换成 NSString 类型,这时候你就可以拿到对应的 内容,如果装换不成功,请转换编码格式。

3、在沙盒中 创建数据库。

4、通过 componentsSeparatedByString: 方法将String 中的内容进行分割,(每一句SQL语句后面都是用分隔号分割的,故使用componentsSeparatedByString:进行分割)。

5、将SQL语句使用 FMDB 写入数据库中。

例子:

    NSString *filePath = [[NSBundle mainBundle ] pathForResource:@"app_database.sql" ofType:nil];

    NSError *error;


    NSString *textFileContents = [NSString stringWithContentsOfFile:filePath encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000) error: & error];

    NSLog(@"%@",error);

    NSString *sqlPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"app_database.db"];

    NSArray *array = [textFileContents componentsSeparatedByString:@";"];

    NSLog(@"%@",array);

    NSLog(@"%@",sqlPath);



    FMDatabase *db = [FMDatabase databaseWithPath:sqlPath];

    if ([db open]) {

        for (NSString *str in array) {
            BOOL res = [db executeUpdate:str];

            if (!res) {
                NSLog(@"error when creating db table");
            } else {
                NSLog(@"成功了");
            }
        }

    }

如果知道有什么方法可以直接运行 .sql 文件的,麻烦告诉我哦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值