//

//  ViewController.m

//  04 - FMDB的用法

//

//  Created by 李洪强 on 2017/6/6.

//  Copyright © 2017年 李洪强. All rights reserved.

//

#import "ViewController.h"

//导入头文件

#import "FMDB.h"

@interface ViewController ()

@property(nonatomic,strong)FMDatabase *dataBase;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//1 创建数据库

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

FMDatabase *dataBase = [FMDatabase databaseWithPath:path];

self.dataBase = dataBase;

//打开数据库

BOOL success = [dataBase open];

if(success){

NSLog(@"创建数据库成功!");

//2 创建表

NSString *str = @"CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT ,name TEXT NOT NULL,score REAL NOT NULL)";

if([self.dataBase executeUpdate:str]){

NSLog(@"创建表成功!");

}else{

NSLog(@"创建表失败!");

}

}else{

NSLog(@"创建数据库失败!");

}

}

//增加数据

- (IBAction)insertData:(UIButton *)sender {

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

NSString *strName = [NSString stringWithFormat:@"ming-yuexing-%d",i];

NSString *sqlStr = [NSString stringWithFormat:@"INSERT INTO t_student (name , score) VALUES ('%@',%.2f)",strName,arc4random_uniform(1000)/10.0];

BOOL success = [self.dataBase executeUpdate:sqlStr];

if(success){

NSLog(@"添加成功");

}else{

NSLog(@"添加失败");

}

}

}

- (IBAction)selectData:(UIButton *)sender {

NSString *sqlStr = @"SELECT * FROM t_student WHERE score > 60.0 ORDER BY score DESC";

//执行查询语句

FMResultSet *set = [self.dataBase executeQuery:sqlStr];

while ([set next]) {

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

CGFloat score = [set doubleForColumn:@"score"];

NSLog(@"name = %@ score = %f",name,score);

}

}

/*

使用FMDB比sql的好处:

线程安全

公共资源在A使用的时候,B不能修改

*/

@end

李洪强iOS开发之-FMDB的用法的更多相关文章

  1. 李洪强iOS开发之添加手势

    李洪强iOS开发之添加手势 02 - 添加手势

  2. 李洪强iOS开发之- 实现简单的弹窗

     李洪强iOS开发之- 实现简单的弹窗 实现的效果:  112222222222223333333333333333

  3. 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView

    李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222

  4. 李洪强iOS开发之苹果使用预览截图

    李洪强iOS开发之苹果使用预览截图 01 在预览的图片中选中你要截得区域  02 - command + C   03 - Command + N 04 - Command + S (保存)

  5. 李洪强iOS开发之通知的使用

    李洪强iOS开发之通知的使用 01 - 在A中发送通知 02 - 在B中监听通知 03 - 在B中通知出发的方法 04 - 在B控制器viewDidLoad调用通知

  6. 李洪强iOS开发之后使用纯代码实现横向滚动的UIScrollView

    李洪强iOS开发之后使用纯代码实现横向滚动的UIScrollView (VTmagic是一个实现左右滚动的控制器的框架,也可以实现此功能) 实现的效果:  01 - 创建四个控制器 02 - 定义需要 ...

  7. 李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片

     李洪强iOS开发之 - 实现九宫格并使用SDWebImage下载图片  源码:  // //  ViewController.m //  08-九宫格扩展 // //  Created by 李洪强 ...

  8. 李洪强iOS开发之 - WebViewJavascriptBridge

    李洪强iOS开发之 - WebViewJavascriptBridge 01 - JS端:   02 - iOS端 01 遵守代理协议 02 申明属性 03 开启日志 04 给哪个webview建立J ...

  9. 李洪强iOS开发本人集成环信的经验总结_09_处理好友请求

    李洪强iOS开发本人集成环信的经验总结_09_处理好友请求 实现这种效果: 01 - 遵守处理好友请求的代理协议 02  - 设置代理 03 - 实现代理方法 04 - 实现代理中用到的方法 

随机推荐

  1. C++AMP介绍(一)

    C++AMP介绍(一) 最后更新日期:2014-05-02 阅读前提: 环境:Windows 8.1 64bit英文版,Visual Studio 2013 Professional Update1英 ...

  2. Tkinter教程之Text篇(1)

    from Tkinter import *root = Tk()t = Text() for i in range(1,10): t.insert(1.0,'0123456789\n')a = 'te ...

  3. JVM:垃圾回收机制和调优手段

    转载请注明出处: jiq•钦's technical Blog - 季义钦 引言: 我们都知道JVM内存由几个部分组成:堆.方法区.栈.程序计数器.本地方法栈 JVM垃圾回收仅针对公共内存区域即:堆和 ...

  4. MHDD修复硬盘坏道

    2种修复的方法,本人已经尝试过,非常管用! 1.先按SHIFT+F3扫描硬盘连接并选择,按F4键,先用一般模式扫一遍,再用高级模式扫一变,具体方法是选择LBA模式,remap项OFF,Loop the ...

  5. 《微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM》

    <微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM> 此版本号眼下是淘宝卖600RMB的,其他VIP源代码论坛也都还没有公布.咱们这里全然免费分享 ...

  6. 【Docker】容器中找不到vi命令

    在Docker容器中找不到vi命令 解决办法: 1.通过命令获取最新的软件包 apt-get-update 2.安装vi命令 apt-get install vim 安装过程中提示是否进行输入Y即可. ...

  7. Tomcat跨二级域配置

    内容转自:http://blog.csdn.net/luka2008/article/details/38385703/,请直接看原文,不过这篇“原文”也是转的... 1,Tomcat下 代码: im ...

  8. xml DTD中的ELEMENT和ATTLIST

    是W3C的一个文档类型定义规则文件,是用来让浏览器根据你定义的DTD(文档类型定义)来解释页面代码的. doctype声明指出阅读程序应该用什么规则集来解释文档中的标记.在Web文档的情况下,“阅读程 ...

  9. springmvc访问静态资源的springmvc.xml配置

    一. 问题及需求 由于Spring MVC的web.xml文件中关于DispatcherServlet拦截url的配置为"/",拦截了所有的请求,同时*.js,*.jpg等静态资源 ...

  10. cout printf 莫明奇妙的崩溃问题

    出现异常主要表现 导致异常的关键代码不是因为printf 或cout,而是因为使用栈空间超出的原因 下图试图在栈上分配1024000个char的空间,确发现崩溃 的位置是printf,这就是这个问题难 ...