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,创建了两个元素Name,Age,text代表字符串, 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"
//查询表格User中Name值为张三 的选项,并且改为 张三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