//
删除数据
- (void)deleteT:(LANOUStudent
*)model{
db = [self openDB];
NSString *sql = [NSString stringWithFormat:@"delete from lanouStudent where age = '25'"];
char *error = nil; int result = sqlite3_exec(db, sql.UTF8String, NULL, NULL, &error); if (result == SQLITE_OK) {
NSLog(@"成功");} else {
NSLog(@"失败");}
[self closeDB]; }
//
更新(修改数据)
- (void)upDateT:(LANOUStudent
*)model{
[self openDB]; NSString *sql = [NSString stringWithFormat:@"update lanouStudent set age =
'%d' where name = '%@'", 45, model.name];
char *error = nil; int result = sqlite3_exec(db, sql.UTF8String, NULL, NULL, &error); if (result == SQLITE_OK) {
NSLog(@"成功");} else {
NSLog(@"失败");}
Page 3 of 6
SQLManager.m
15/9/16 下午5:18
[self closeDB];
}
//
查询单个数据
- (LANOUStudent *)selectT:(NSString *)name andAge:(NSString *)age{
// 1.开启数据库
db = [self
openDB];
// 2.SQL语句的书写
NSString *sql = [NSString stringWithFormat:@"select * from lanouStudent
where age = '%@' and name = '%@'", age, name];// 3.设置静态指针
//
⽅方法的参数分析
// int nByte
数值为"- 1",
就表⽰示⽆无限⻓长
//
第四个参数是表⽰示 截取不执⾏行的语句
sqlite3_stmt *stmt =
nil;
int
result = sqlite3_prepare_v2(db, sql.UTF8String, -
1, &stmt,
NULL);if
(result == SQLITE_OK) {
NSLog(@"成功");// 4.绑定查询的条件
// ⽅方法的参数分析/**
* Description * * @param sqlite3_stmt sqlite3_stmt description
-
* @param int
-
* @param char
-
* @param n*
-
* @return return value description 绑定后执⾏行的参数(⼀一般就将数值 填写
int description
查询条件的顺序 从1开始char
description 写查询条件的字段名
n description
字符串的⻓长度
NULL)*/
sqlite3_bind_text(stmt, 2, name.UTF8String, - 1, NULL);
sqlite3_bind_text(stmt, 1, age.UTF8String, - 1, NULL);// 5.开始查询
//
⽅方法的参数分析
// sqlite3_step(stmt) == SQLITE_ROW
// 如果 上⾯面这条语句 可以被找到 就返回SQLITE_ROWwhile (sqlite3_step(stmt) == SQLITE_ROW) {
// 6.获取数据
//
⽅方法的参数分析/**
* Description
*
* @param
stmt
* @param
iCol#> iCol description#>
在数据库表中的 列数从零开始 那
么就需要我们打开数据库确定我们具体的参数在第⼏几⾏行
* * @return return value description */
//
获取数据
char
*name = (char
*)sqlite3_column_text(stmt,
1);char
*gender = (char
*)sqlite3_column_text(stmt,
2);char
*age = (char
*)sqlite3_column_text(stmt,
3);char
*number = (char
*)sqlite3_column_text(stmt,
0);
// 7.给数据对象进⾏行赋值
stmt description
Page 4 of 6
SQLManager.m
15/9/16 下午5:18
LANOUStudent *student = [[LANOUStudent alloc] init];
student.name = [NSString stringWithUTF8String:name];
student.number = [NSString stringWithUTF8String:number];
student.gender = [NSString stringWithUTF8String:gender];
student.age = [NSString stringWithUTF8String:age];
// 8.释放指针sqlite3_finalize(stmt);//
9.关闭数据库
[self
closeDB];
// 10.返回对象
return [student autorelease]; }
} else {NSLog(@"失败");
}
// 11.
关闭数据库[self
closeDB];//
返回空
return nil;
}
//
查询所有的数据
- (NSArray *)selectAllT{
// 1.
开启数据库
db = [self
openDB];
// 2.SQL语句
NSString *sql = [NSString stringWithFormat:@"select *from lanouStudent"];//
3.静态指针
sqlite3_stmt *stmt =
nil;
// 4.执⾏行
int
result = sqlite3_prepare_v2(db, sql.UTF8String, -
1, &stmt,
NULL);
// 5.判断
if
(result == SQLITE_OK) {
NSLog(@"成功");
// 6.查询
NSMutableArray *array = [NSMutableArray array];while
(sqlite3_step(stmt) == SQLITE_OK) {
// 7.读取数据
char
*name = (char
*)sqlite3_column_text(stmt,
1);char
*gender = (char
*)sqlite3_column_text(stmt,
2);char
*age = (char
*)sqlite3_column_text(stmt,
3);char
*number = (char
*)sqlite3_column_text(stmt,
0);
// 8.给数据对象赋值
LANOUStudent *student = [[LANOUStudent alloc] init];student.name = [NSString stringWithUTF8String:name];student.gender = [NSString stringWithUTF8String:gender];student.age = [NSString stringWithUTF8String:age];student.number
= [NSString stringWithUTF8String:number];// 9.
添加数组
[array addObject:student];
// 10.
释放对象
Page 5 of 6
SQLManager.m
15/9/16 下午5:18
[student release];
}
// 释放指针sqlite3_finalize(stmt);// 关闭数据库
[self closeDB];// 返回对象
return array;
} else {NSLog(@"失败");
}
//
关闭数据库[self
closeDB];//
返回值
return nil;
}