FMDB_demo

来源:互联网 发布:农村淘宝 大米 编辑:程序博客网 时间:2024/04/30 04:37

#import<UIKit/UIKit.h>


@interface ViewController :UIViewController


@end


#import"ViewController.h"


#import"FMDatabase.h" 


/*加入库文件

 

    libsqlite3.0.dylib

 

 */



@interfaceViewController ()


@end


@implementation ViewController


- (void)viewDidLoad

{

    [superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    

   //获取沙盒Document目录方法

   NSArray * arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

    NSString * path = [arr objectAtIndex:0];

    

    //创建的数据库的路径的名字

    path = [pathstringByAppendingPathComponent:@"Test.db"];

   NSLog(@"path is %@...",path);

    

    //根据路径创建数据库

   FMDatabase * dataBase = [FMDatabasedatabaseWithPath:path];

    if (![dataBase open]) { 

       NSLog(@"can not open dataBase!");

        return;

    }

    

   // [NSNumber numberWithInt:20];

   NSArray *array=[NSArrayarrayWithObjects:@"CREATE TABLE if not exists student (serial integer  PRIMARY KEY AUTOINCREMENT,sno integer,sname TEXT(1024) DEFAULT NULL,saddress TEXT(1024) DEFAULT NULL)",@"CREATE TABLE if not exists course (serial integer  PRIMARY KEY AUTOINCREMENT,cno integer,cname TEXT(1024) DEFAULT NULL,cteacher TEXT(1024) DEFAULT NULL)",@"CREATE TABLE if not exists score (serial integer  PRIMARY KEY AUTOINCREMENT,sno integer,cno integer,score Float DEFAULT NULL)", nil];

    

    for(NSString *sql in array){

        [dataBase executeUpdate:sql];

    }

    

   //executeUpdate封装好的,执行sql语句的方法

   //创建表格,附带表格名字User,创建了两个元素NameAgetext代表字符串, integer整形

    //一个数据库允许有多张表格

    [dataBaseexecuteUpdate:@"CREATE TABLE if not exists User (Name text,Age integer, Height text)"];

    

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

        [dataBaseexecuteUpdate:@"INSERT INTO User (Name,Age) VALUES (?,?)",@"张三",[NSNumbernumberWithInt:20]];

    }

    

   //ios中插入整形值用的方法是NSNumber

   //对表格User中的元素Name Age插入内容是张三01 20


    [dataBaseexecuteUpdate:@"INSERT INTO User (Name,Age) VALUES (?,?)",@"张三01",[NSNumbernumberWithInt:20]];

    

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

        [dataBaseexecuteUpdate:@"INSERT INTO User (Name,Age) VALUES (?,?)",@"张三01",[NSNumbernumberWithInt:20]];

    }

   // update tb set UserName="XXXXX" where UserID="aasdd"

   //查询表格UserName值为张三 的选项,并且改为 张三222

   BOOL flag = [dataBaseexecuteUpdate:@"UPDATE User SET Name=? WHERE Name=?",@"张三222",@"张三"];

   NSLog(@"update sql flag is %d",flag);

    

   //select *from User 表示遍历表格User的每一项

    FMResultSet * rs = [dataBase executeQuery:@"select * from user"];

   //rs = [dataBase executeQuery:@""];

    //遍历表格每一项

    while ([rs next]) {

       NSLog(@"name is %@ Age is %d.",[rsstringForColumn:@"Name"],[rsintForColumn:@"Age"]);

    }

    

    //查询表格中所有Name为张三的数据

    [dataBaseexecuteUpdate:@"DELETE  FROM User WHERE Name = ?",@"张三"];

   //清空表格数据

    [dataBaseexecuteUpdate:@"DELETE FROM User"];

   //删除表格

    [dataBaseexecuteUpdate:@"DROP TABLE User"];

    

    [dataBase close];

}


@end