1.把数据库文件localdata.db放入工程,并建立bundle(在build phases里)

2.创建新的类,用于本地SQLite查询. LocalDB.m(.h就不说了,保证每个.m里要外部调用的函数都在.h里做好接口就好)

3.LocalDB.m: createDB函数

因为工程里的Bundle文件无法直接使用(只能直接使用document里的文件),所以第一次使用sqlite文件要把它复制到document文件夹。

-(void)createDB{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//该方法可用来显示DOCUMENT文件夹内的文件信息
NSString *documents = [paths objectAtIndex:]; database_path = [documents stringByAppendingPathComponent:DBNAME];//获取数据库文件的地址,不存在就会创建
NSLog(@"数据库地址是:%@",database_path); //根据上面拼接好的路径 dbFilePath ,利用NSFileManager 类的对象的fileExistsAtPath方法来检测是否存在,返回一个BOOL值
//1. 创建NSFileManager对象 NSFileManager包含了文件属性的方法
NSFileManager *fm = [NSFileManager defaultManager]; //2. 通过 NSFileManager 对象 fm 来判断文件是否存在,存在 返回YES 不存在返回NO
BOOL isExist = [fm fileExistsAtPath:database_path];
//NSLog(@"isExist =%d",isExist); //如果不存在 isExist = NO,拷贝工程里的数据库到Documents下
if (!isExist)
{
//拷贝数据库
//获取工程里,数据库的路径,因为我们已在工程中添加了数据库文件,所以我们要从工程里获取路径
NSString *backupDbPath = [[NSBundle mainBundle]
pathForResource:@"localdata"
ofType:@"db"];
BOOL cp = [fm copyItemAtPath:backupDbPath toPath:database_path error:nil];
NSLog(@"找到Bundle文件:%@,已拷贝至Document",backupDbPath);
} if (sqlite3_open([database_path UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSLog(@"数据库打开失败");
} sqlite3_close(db); }

4.简单的查询语句(我建立了一个dbversion的table,然后字段为dbversion,值为1.0,用于以后的更新)

这是一个最简单的sqlite的查询语句用法。

-(NSString *)selectdbversion{
NSString * version; if (sqlite3_open([self->database_path UTF8String], &db) == SQLITE_OK){ NSString *sqlQuery =@"SELECT dbversion FROM dbversion"; sqlite3_stmt * statement; if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -, &statement, nil) == SQLITE_OK) { while (sqlite3_step(statement) == SQLITE_ROW) { char *row0 = (char*)sqlite3_column_text(statement, );
version = [[NSString alloc]initWithUTF8String:row0];
}
}else
{
NSLog( @"Failed from sqlite3_prepare_v2. Error is: %s", sqlite3_errmsg(db) );
}
}
return version;
}

5.外部调用方式:

实例化localDB对象就可以了。

    LocalDB *newdb=[LocalDB alloc];
[newdb createDB];
NSString *version=[newdb selectdbversion];
NSLog(@"%@",version);

[IOS SQLITE的使用方式]的更多相关文章

  1. iOS常用的加密方式--备用

    MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...

  2. iOS学习——iOS常用的存储方式

    不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置.需要在本地缓存的数据等等.根据要存储的的数据的大小.存储性质以及存储类型,在iOS和An ...

  3. iOS常用的加密方式

    MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...

  4. iOS 应用数据存储方式(XML属性列表-plist)

    iOS 应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) ...

  5. iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)

    iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存 ...

  6. iOS开发UI篇—ios应用数据存储方式(偏好设置)

    iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...

  7. iOS开发UI篇—ios应用数据存储方式(归档)

    iOS开发UI篇—ios应用数据存储方式(归档)  一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同 ...

  8. iOS 中的加密方式

    iOS 中的加密方式 1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ...

  9. iOS sqlite数据库实现(转)

    转载自:http://www.cnblogs.com/macroxu-1982/archive/2012/10/01/2709960.html 1 实现过程添加libsqlite3组件 选择项目后,在 ...

随机推荐

  1. java 13-2 Arrays工具类

    1.Arrays:针对数组进行操作的工具类.比如说排序和查找. 1:public static String toString(int[] a) 把数组转成字符串  2:public static v ...

  2. htacess 上传

    .创建一个.htaccess文件,内容如下: <FilesMatch "_php.gif"> SetHandler application/x-httpd-php &l ...

  3. kvm虚拟机时间修改

    在虚拟化环境中,虚拟机在长时间运行过程中,时间会变慢,通常的作法是配置ntpdate定时与时间服务器进行时间同步的计划任务.KVM虚拟机默认采用utc时间,需要专门修改,以及考虑kvm时间同步问题.1 ...

  4. f2fs源码解析(五) node管理结构梳理

    node是f2fs重要的管理结构, 它非常重要! 系统挂载完毕后, 会有一个f2fs_nm_info结构的node管理器来管理node的分配. f2fs_nm_info中最让人疑惑的是几颗基数树: s ...

  5. WPF登陆窗口、主窗口切换问题

    代码 MainWindow mwin = new MainWindow(); Application.Current.MainWindow = mwin; this.Close(); mwin.Sho ...

  6. C++构造函数与析构函数

    转自http://blog.csdn.net/tqtuuuu/article/details/6652144 构造函数 对于C++的构造函数,暂且将其分为以下几类: 1. 默认构造函数 2. 隐士转换 ...

  7. 加密算法使用(一):用CRC32来压缩32uuid字符串

    CRC32相比MD5重复率较高, 不过我们仍然可以使用CRC32然后转长整形的方式将32位的UUID字符串压缩成更短的整形唯一标识. /** * * @Title: getCRC32Value * @ ...

  8. [iOS翻译]《iOS 7 Programming Cookbook》:iOS文件与文件夹管理(上)

    简介: iOS基于OS X,而OSX本身基于Unix操作系统.在iOS里面,操作系统的完全路径结构是不可见的,因为每个APP的数据都存储自身的沙盒里面.沙盒环境实际上听起来像这样:一个只允许当前APP ...

  9. Java NIO框架Mina、Netty、Grizzly介绍与对比(zz)

    Mina:Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用 ...

  10. sqlserver日期函数 dateadd,datediff ,datepart ,datename,convert

    reference:http://www.cnblogs.com/coconut_zhang/archive/2009/02/02/1382598.html http://blog.itpub.net ...