iOS 数据库 sql语句 存放对象
来源:互联网 发布:淘宝重复铺货怎么处罚 编辑:程序博客网 时间:2024/06/08 11:42
//
// DataBaseManager.m
// 数据库系统
//
// Created by yangtingting on 14-7-29.
// Copyright (c) 2014年 灭神科技. All rights reserved.
//
#import "DataBaseManager.h"
#import <sqlite3.h>
@implementation DataBaseManager
// 单例方法的实现
+ (DataBaseManager *)shareInstance
{
staticDataBaseManager *dbManage =nil;// static在程序运行时,只初始化一次
if (dbManage == nil) {
dbManage = [[DataBaseManageralloc] init];
}
return dbManage;
}
// 打开数据库
- (void)openDB
{
NSArray *pathArr =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
// 获取documents文件夾的路径
NSString *docupath = [pathArr lastObject];
// 拼接一个数据库文件的地址
NSString *path = [docupathstringByAppendingPathComponent:@"ghw.db"];
NSLog(@"%@", path);
// 打开数据库的函数
// 参数1:数据库文件的路径
// 参数2:数据库的指针地址
int result = sqlite3_open([pathUTF8String]/*转换为c的字符串*/,
&dbPoint);
NSLog(@"打开数据库的结果:%d", result);//0sucess 1, sql语句有问题 SQLITE_OK
}
//关闭数据库
- (void)closeDB
{
//
int result = sqlite3_close(dbPoint);
NSLog(@"%d", result);
}
// 创建一个表
- (void)creatTable
{
NSString *sql =@"create table teacher (name text, id integer primary key, age integer)";
// 参数1:数据库指针
// 参数2:要执行的sql语句
// 参数3:回调函数
// 参数4:
int result = sqlite3_exec(dbPoint, [sqlUTF8String], NULL,NULL, NULL);
NSLog(@"创建结果:%d", result);
}
- (void)insertData
{
NSString *sql =@"insert into teacher values ('guo',2, '2')";
int result = sqlite3_exec(dbPoint, [sqlUTF8String], NULL,NULL, NULL);
NSLog(@"插入结果%d", result);
}
- (void)updata
{
NSString *sql =@"update teacher set name = '李', age = '20' where id = 2";
int result = sqlite3_exec(dbPoint, [sqlUTF8String], NULL,NULL, NULL);
NSLog(@"更新的结果%d", result);
}
- (void)deleteData
{
NSString *sql =@"delete from teacher where id = 2";
int result = sqlite3_exec(dbPoint, [sqlUTF8String], NULL,NULL, NULL);
NSLog(@"删除的结果:%d", result);
}
- (void)insertTeacher:(Teacher *)teacher
{
// 插入一条数据
NSString *sql = [NSStringstringWithFormat:@"insert into teacher values ('%@', %d, %d)", teacher.name, teacher.ID, teacher.age];
int result = sqlite3_exec(dbPoint, [sqlUTF8String], NULL,NULL, NULL);
NSLog(@"插入结果:%d", result);
}
- (NSMutableArray *) selectAllTeacher
{
// 返回所有的teacher对象组成的数组
// 1sql 语句
NSString *sql =@"select * from teacher";
// 2创建一个数据库的替身 作用,作为一个临时的数据库,存储对底层数据库所有数据操作 和改变
sqlite3_stmt *stmt = nil;
// 3对sql语句进行语法检查
// 参数1:数据库的指针
// 参数2:sql语句
// 参数3:限制sql语句的长度(-1:不限制)
// 参数4:数据库的替身的地址
int result = sqlite3_prepare_v2(dbPoint, [sqlUTF8String], -1, &stmt,NULL);
NSLog(@"结果%d", result);
// 4对检查结果进行判断
if (SQLITE_OK == result) {
// 5如果sql语句没有错误,执行sql语句
NSMutableArray *arr = [NSMutableArrayarray];
while (sqlite3_step(stmt) ==SQLITE_ROW) {
// 6每当获取到一条数据,执行循环体
Teacher *teacher = [[Teacheralloc] init];
// 获取数据
// 参数1:替身
// 参数2:第几列
const unsignedchar *namechar = sqlite3_column_text(stmt,0);
NSString *name = [NSStringstringWithUTF8String:(constchar *)namechar];
teacher.name = name;
// NSLog(@"%@", name);
int ID = sqlite3_column_int(stmt,1);
teacher.ID = ID;
teacher.age =sqlite3_column_int(stmt, 2);
[arraddObject:teacher];
[teacherrelease];
}
// 对数据库的操作和改变 提交到底层数据库中
// 同时销毁stmt替身
sqlite3_finalize(stmt);
return arr;
}
sqlite3_finalize(stmt);
return [NSMutableArrayarray];
}
@end
- iOS 数据库 sql语句 存放对象
- SQL语句查询数据库对象
- iOS数据库常用sql语句
- iOS学习 数据库 SQL语句
- 一些求数据库对象的SQL语句
- iOS开发数据库篇—SQL语句
- [iOS 数据库 转 ]iOS中 常用的SQL语句
- iOS对存放对象的数组排序
- 执行mybatis数据库中存放的SQL
- 使用SQL语句查询Mysql日志存放位置
- IOS中SQL语句
- IOS中SQL语句
- IOS中SQL语句
- IOS中SQL语句
- SQL数据库分页语句
- Sql语句创建数据库
- 数据库SQL语句
- SPJ数据库Sql语句
- Git超简单入门简明教程--写给一直不敢用Git的同学
- Oracle10g和11g在新增表字段时default的性能影响
- 嵌入式linux面试题
- Qt程序打包成exe可执行文件图文教程
- nagios 客户端扩展脚本检测批量url web 状态
- iOS 数据库 sql语句 存放对象
- 边缘检测之LOG算子
- 类型转换
- 笔记——负载均衡(Load Balance)
- HDU 1701 Binary Tree Traversals 【二叉树】
- 用java调用oracle存储过程总结
- C语言深度解剖读书笔记(1.关键字的秘密)
- Python第三方包的导入
- c++面向对象的程序设计学习笔记(谭浩强版)