IOS学的容易----单例类对数据库的具体的操作的⽅法进⾏封装(二)
来源:互联网 发布:javascript是什么知乎 编辑:程序博客网 时间:2024/06/02 00:28
//删除数据
- (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 = [selfopenDB];
// 2.SQL语句的书写
NSString *sql = [NSString stringWithFormat:@"select * from lanouStudent
where age = '%@' and name = '%@'", age, name];// 3.设置静态指针
//⽅方法的参数分析
// int nByte数值为"- 1",就表⽰示⽆无限⻓长
//第四个参数是表⽰示 截取不执⾏行的语句
sqlite3_stmt *stmt =nil;
intresult = sqlite3_prepare_v2(db, sql.UTF8String, -1, &stmt,NULL);if(result == SQLITE_OK) {
NSLog(@"成功");// 4.绑定查询的条件
//⽅方法的参数分析/**
* Description * * @param sqlite3_stmt sqlite3_stmt description
* @paramint
* @paramchar
* @paramn*
* @returnreturn 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
*
* @paramstmt
* @paramiCol#> 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.关闭数据库
[selfcloseDB];
// 10.返回对象
return [student autorelease]; }
} else{NSLog(@"失败");
}
// 11.关闭数据库[selfcloseDB];//返回空
return nil;
}
//查询所有的数据
- (NSArray *)selectAllT{
// 1.开启数据库
db = [selfopenDB];
// 2.SQL语句
NSString *sql = [NSString stringWithFormat:@"select *from lanouStudent"];// 3.静态指针
sqlite3_stmt *stmt =nil;
// 4.执⾏行
intresult = 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);//关闭数据库
[selfcloseDB];//返回对象
return array;
} else{NSLog(@"失败");
}
//关闭数据库[selfcloseDB];//返回值
return nil;
}
- IOS学的容易----单例类对数据库的具体的操作的⽅法进⾏封装(二)
- IOS学的容易---数据库详细的操作(继承与单例类封装一,二)
- IOS学的容易---单例类进行对数据库操作方法的封装(一)
- PHP中对数据库操作的封装
- PHP中对数据库操作的封装
- PHP中对数据库操作的封装
- mysql数据库对文件操作的封装
- PHP中对数据库操作的封装
- PHP中对数据库操作的封装
- Dao对数据库的操作进行封装
- iOS对数据库的操作
- iOS经典讲解之利用单例类封装对SQLite数据库增、删、查、改的操作
- 对数据库的封装
- python + selenium 具体对浏览器的操作和用途 (二)
- 数据库操作的封装的类 对Access操作
- 数据库操作的封装
- 数据库操作的封装
- SQLiteOpenHelper的使用,对数据库操作的封装
- oracle数据导入导出表等系列操作总结
- 将开发板中显示的图像保存为bmp
- 手动设置SwipeRefreshLayout的setRefreshing(true)遇到的问题
- Oracle 如何查询被锁定表及如何解锁释放session
- Android 自定义控件之inflate()
- IOS学的容易----单例类对数据库的具体的操作的⽅法进⾏封装(二)
- Ubuntu14.02下ssh安装与配置
- Java对象序列化
- 发邮件MailMessage、SmtpClient
- 关于java获取本地ip的几种方法
- CocoaPods上传公用项目
- 一个非常标准的Java连接Oracle数据库的示例代码
- 聚类分析中距离度量方法比较
- springMVC教程初级(一)初始springmvc(重点 )