IOS操作数据库,SQLite3和coredata是两个非常好的选择,但是对于我们这些掌握了其他数据库语言的人来说,使用这两中操作都会觉得不方便,SQLite3使用起来太复杂了,而使用coredata的时候却封装太死了,我们需要自己些自己的数据库语句,这时候,FMDB就是一个非常不错的选择

下面是FMDB的基本使用

在Main.storyboard中添加4个按钮分别是(插入 , 更新,删除 , 查询)

在ViewController中

//

//  ViewController.m

//

//

#import "ViewController.h"

#import "FMDB.h"

@interface ViewController ()

@property (nonatomic, strong) FMDatabase *db;

- (IBAction)insert;

- (IBAction)update;

- (IBAction)delete;

- (IBAction)query;

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

// 0.获得沙盒中的数据库文件名

NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"student.sqlite"];

// 1.创建数据库实例对象

self.db = [FMDatabase databaseWithPath:filename];

// 2.打开数据库

if ( [self.db open] ) {

NSLog(@"数据库打开成功");

// 创表

BOOL result = [self.db executeUpdate:@"create table if not exists t_student (id integer primary key autoincrement, name text, age integer);"];

if (result) {

NSLog(@"创表成功");

} else {

NSLog(@"创表失败");

}

} else {

NSLog(@"数据库打开失败");

}

}

- (IBAction)insert

{

for (int i = 0; i<40; i++) {

NSString *name = [NSString stringWithFormat:@"rose-%d", arc4random() % 1000];

NSNumber *age = @(arc4random() % 100 + 1);

[self.db executeUpdate:@"insert into t_student (name, age) values (?, ?);", name, age];

}

}

- (IBAction)update

{

[self.db executeUpdate:@"update t_student set age = ? where name = ?;", @20, @"jack"];

}

- (IBAction)delete

{

}

- (IBAction)query

{

// 1.查询数据

FMResultSet *rs = [self.db executeQuery:@"select * from t_student where age > ?;", @50];

// 2.遍历结果集

while (rs.next) {

int ID = [rs intForColumn:@"id"];

NSString *name = [rs stringForColumn:@"name"];

int age = [rs intForColumn:@"age"];

NSLog(@"%d %@ %d", ID, name, age);

}

}

@end

转载于:https://www.cnblogs.com/cainiao-blogs/p/4070844.html

FMDB数据库框架的是使用相关推荐

  1. ios mysql数据库查询语句_ios fmdb数据库查询语句

    iOS开发数据库篇-FMDB简单介绍 iOS开发数据库篇-FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语 ...

  2. iOS数据库框架 WCDB的使用详解

    WCDB是一个高效.完整.易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android. 前几年的项目用到的数据库框架,都是FMDB.从最初的摸索到工具类的封装,也是经历了一 ...

  3. Wcdb android 目录,介绍 - 《WCDB - 腾讯开源的移动数据库框架》 - 书栈网 · BookStack...

    WCDB 相关讨论可以加我们的QQ群WCDB 技术交流群: 190485752 WCDB iOS/macOS 群: 708134978 WCDB Android 群: 868268492 WCDB W ...

  4. Android客户端开发—开源数据库框架LitePal

    LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,不使用SQL语句就可以完成创建表以及表单的CRUD操作,并且很轻量级,几乎零配置.(它将 ...

  5. Java-ORM数据库框架CDM介绍

    cdm-core Cdm Framework 一个使用简单,零配置,容错率高,效率的Java™ ORM 数据库框架 ✨ 特性 使用简单 没有依赖,一行代码即可初始化连接,调用接口像使用脚本语言一样畅爽 ...

  6. Android 数据库框架ormlite 使用精要

    Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机 ...

  7. php mysql 框架_Medoo 轻量级的 PHP 数据库框架 - 文章

    Medoo 是一个轻量级的PHP数据库框架,提高开发效率,Medoo 需要 PHP 支持 PDO 扩展,请在配置文件中开启 PDO 扩展. 为什么选择 Medoo 非常的轻量 未压缩只有 34KB. ...

  8. 安卓进阶系列-07数据库框架(GreenDAO)的使用

    GreenDAO的使用 简介 安卓提供了一个占用内存极小的数据库SQLite,也提供了不少操作数据库的API,然而不是所有程序员都擅长编写SQL语句,这时一个ORM的数据库框架就显得很好用了. 在之前 ...

  9. 安卓进阶系列-06数据库框架(LitePal)的使用

    LitePal的使用 背景 安卓内置了一个轻量数据库SQLite,然而很多时候使用SQLite是不方便的,更多开发者习惯服务器部署MySQL之类的数据库,而且复杂的SQL语言对于很多没有系统学习过数据 ...

最新文章

  1. go环境变量配置 (GOROOT和GOPATH)
  2. 如何查询高考成绩2021年的成绩排位,2021年四川高考个人排名怎么查询,四川高考成绩排名查询方法...
  3. linux查看cpu运行速度,linux 性能篇 -- 查看cpu核数
  4. mysql 递归查询树型结构_MySQL递归查询所有子节点,树形结构查询
  5. 数据结构思维 第五章 双链表
  6. IAR软件中直接查看编译后代码大小
  7. 微信小程序的特点是什么?
  8. Windows下部署安装Docker
  9. 伽马校正(Gamma Correction)
  10. 哈尔滨五星酒店马桶刷洗杯子事件舆情监测报告
  11. IBM JDK(J9)垃圾回收(GC)策略
  12. Dazdata BI产品3D+BI医院综合管理应用案例
  13. 阿里云服务器和腾讯云不同的地方
  14. MPU和MMU、MPU和MCU的区别
  15. cron每半个小时执行一次_Linux中Cron任务间隔执行:每隔几分钟/几小时/几天
  16. 什么是人工智能_人工智能的利弊_人工智能技术
  17. Atcoder TOYOTA SYSTEMS Programming Contest 2021(AtCoder Beginner Contest 228) B - Takahashi‘s Secret
  18. TensorFlow进阶--实现学习率随迭代次数下降
  19. 在手机上安装Ubuntu(Termux)
  20. 一个Shift的后门程序,可以让你可以进入你不知道密码的电脑

热门文章

  1. 智慧讲台必须支持的协议
  2. 95-30-020-Channel-NioSocketChannel
  3. Netty : java.io.IOException: Connection reset by peer
  4. 60-100-030-使用-Docker MySQL 8 主从复制
  5. 【ambari】Ambari Rest api 使用
  6. hortonworks/registry 的Registry,registry存在,但是却查不到
  7. SparkStreaming之mapWithState
  8. Spring : Spring 事务控制 设置手动回滚 TransactionAspectSupport
  9. 【Maven】log4j-slf4j-impl cannot be present with log4j-to-slf4j
  10. MySQL : MySQL如何查看操作记录