大家工作中,最常用到的无非是 增、删、查、改。。。

在SQL中对应的语句为:INSERT DELETE SELECT UPDATE

首先,你可以使用一款叫做“sqlite database browser”的工具来可视化的管理数据库

然后把数据库文件加入到Resource目录下,然后通过以下代码来安装数据库,也就是拷贝到doc目录下:

  1. //install file to doc dir
  2. - (BOOL)installFileOfName:(NSString *)fileName {
  3. NSString *pathForDoc = nil;
  4. NSString *pathForRes = nil;
  5. pathForDoc = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",fileName];
  6. //NSLog(@"%@",pathForDoc);
  7. if ([[NSFileManager defaultManager] fileExistsAtPath:pathForDoc] == YES) {
  8. return NO;
  9. }else {
  10. pathForRes = [[NSBundle mainBundle] pathForResource:fileName ofType:[fileName pathExtension]];
  11. NSData *fileData = [NSData dataWithContentsOfFile:pathForRes];
  12. [[NSFileManager defaultManager] createFileAtPath:pathForDoc contents:fileData attributes:nil];
  13. return YES;
  14. }
  15. }

上面这个方法,你可以直接调用,传递一个数据库文件名,然后它会把它复制到doc目录。

下面是一些FMDB的操作,安装、打开数据库:

  1. if ([self installFileOfName:@"test_db"] == YES) {
  2. NSLog(@"install database success.");
  3. }else {
  4. NSLog(@"install database fail.");
  5. }
  6. NSString *dbPath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",@"test_db"];
  7. //NSLog(@"database path:%@",dbPath);
  8. FMDatabase *fm = [FMDatabase databaseWithPath:dbPath];
  9. if ([fm open] == YES) {
  10. NSLog(@"open database success.");
  11. }else {
  12. NSLog(@"open database fail.");
  13. return;
  14. }

接下来,我们就可以开始测试各种的sql语句了:

向数据库插入一条记录:

  1. BOOL operaResult = [fm executeUpdate:@"INSERT INTO test_tab (name,age,mail) VALUES (?,?,?)",@"佳",@"4",@"c0066@gmail.com"];

修改数据库中的某条记录:

  1. BOOL operaResult = [fm executeUpdate:@"UPDATE test_tab SET name=? WHERE name=?",@"123",@"佳"];

从数据库删除某条记录:

  1. BOOL operaResult = [fm executeUpdate:@"DELETE FROM test_tab WHERE name=?",@"jiajia"];

从数据库获得记录,并按照降序排序:

    1. FMResultSet *s = [fm executeQuery:@"SELECT * FROM test_tab ORDER BY age DESC"];

最新文章

  1. C++项目中的extern "C" {}
  2. canvas绘制二次贝塞尔曲线----演示二次贝塞尔四个参数的作用
  3. 项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里
  4. C# Textbox的ImeMode取值对中文输入法的影响 (转)
  5. ThinkPHP 3.2.3 自动加载公共函数文件的方法
  6. python中property干什么用的?
  7. [redis] redis 存取键值对常用的三种使用方式 - Jedis、JedisPool、Jedis分布式
  8. Javascript中parentNode的用法
  9. DataSnap与FireDAC三层
  10. Android 图片三级缓存之内存缓存(告别软引用(SoftRefrerence)和弱引用(WeakReference))
  11. struts2.1.3之后使用自定义Filter
  12. Liferay门户网站portal
  13. 转帖Jmeter中的几个重要测试指标释义
  14. React Router基础使用
  15. [转]如何使用BackTrack破解WIFI无线网络的WEP密钥
  16. 获取Java VM中当前运行的所有线程
  17. Milk Patterns poj3261(后缀数组)
  18. today-Extension widget 扩展开发
  19. idea搭建Spring Boot+MyBatis
  20. 读取excel思路

热门文章

  1. 在Windows上安装和配置Jenkins
  2. c++_核桃的数量
  3. pdfjs viewer 开发小结
  4. js总结(三):面向对象,prototype ,oo模拟
  5. (一)java集合框架——Iterable
  6. MySQL语句之or和and多条件查询
  7. kafka直连方式消费多个topic
  8. [转]Fedora 添加国内源(sohu, 163)
  9. 【BZOJ1211】树的计数(Prufer编码)
  10. 【ZJOI2017 Round1练习】D2T3 counter(线段树)