// ViewController.m
// FTMD_DEMO
#import "ViewController.h"
#import "FMDatabase.h"
@interface ViewController ()
{
FMDatabase *db;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//1. 导入sqlite框架
//2. 获得数据文件路径
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"%@",documentPath);
NSString *dbPath = [documentPath stringByAppendingPathComponent:@"student.sqlite"];
//3. 获得数据库
db = [FMDatabase databaseWithPath:dbPath];
//4. 打开数据库
if ([db open]) {
NSLog(@"数据库打开.....");
NSString *create_sql = @"create table if not exists student(s_id integer primary key autoincrement,s_name text not null,s_age integer)";
if ([db executeUpdate:create_sql]) {
NSLog(@"创建成功");
}else {
NSLog(@"创建失败");
}
}
//增加学生
// [self insertStudent];
//删除学生
// [self deleteStudent];
//删除表格
// [self dropTable];
//更新学生信息
[self updateStudent];
//查询学生信息
[self getStudent];
//5. 关闭数据库
[db close];
}
#pragma mark 插入学生信息
- (void)insertStudent {
for (int i = 0; i < 10; i++) {
NSString *name = [NSString stringWithFormat:@"jereh%i",i+1];
int age = 18+arc4random()%5;
// //executeUpdate: 不确定的地方用?占位,后面的参数必须都是OC对象
// [db executeUpdate:@"insert into student (s_name,s_age) values (?,?)",name,@(age)];
// //executeUpdate: 不确定的地方用?占位,后面的参数必须都是OC对象
// [db executeUpdate:@"insert into student (s_name,s_age) values (%@,%i)",name,age];
//用数组来传不确定的参数
[db executeUpdate:@"insert into student (s_name,s_age) values (?,?)" withArgumentsInArray:@[name,@(age)]];
}
}
#pragma mark 删除学生信息
- (void)deleteStudent {
[db executeUpdate:@"delete from student where s_id = ?",@(3)];
[db executeUpdate:@"delete from student where s_age = %i",20];
}
#pragma mark 删除表格
- (void)dropTable {
if ([db executeUpdate:@"drop table if exists student"]) {
NSLog(@"Student表格删除成功....");
}
}
#pragma mark 更新学生信息
- (void)updateStudent {
[db executeUpdate:@"update student set s_name=? where s_name=?",@"apple",@"jereh1"];
}
#pragma mark 查询学生
- (void)getStudent {
//1. 执行查询语句
FMResultSet *resultSet = [db executeQuery:@"select * from student where s_age<?",@(20)];
//2. 遍历结果集
while ([resultSet next]) {
int idNum = [resultSet intForColumn:@"s_id"];
NSString *name = [resultSet objectForColumnName:@"s_name"];
int age = [resultSet intForColumn:@"s_age"];
NSLog(@"idNum = %i name = %@ age = %i",idNum,name,age);
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
@end
FTMD_DEMO
最新推荐文章于 2016-09-07 17:42:50 发布