iOS开发数据库, sqlite,
来源:互联网 发布:php是什么文件 编辑:程序博客网 时间:2024/06/10 15:03
数据库:
存储数据的仓库, 数据以表的形式放在数据库中, 表中每一列都有一个名字(字段), 其中一个字段标识数据的唯一性, 称为主键, 主键唯一, 不为空
常见的数据库: access, MySQL, SQLServer, Oracle
移动开发常用的轻量级数据库: sqlite
数据库常见的操作: 创建表, 增删改查数据
//打开数据库
- (IBAction)open:(UIButton *)sender {
//判断数据库是否打开了,如果打开了就不用再次执行打开操作
if (db) {
return;
}
//.sqlite文件的路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)firstObject];
NSString *dbPath = [NSStringstringWithFormat:@"%@/database.sqlite", docPath];
NSLog(@"%@", dbPath);
//[dbPath UTF8String], 把字符串从OC转成C的类型
//创建一个数据库指针
db = nil;
//打开数据库,并把给定 数据库指针指向 打开的数据库
int result = sqlite3_open([dbPathUTF8String], &db);
if (result == SQLITE_OK) {
NSLog(@"打开数据库成功");
}else {
NSLog(@"打开数据库失败");
}
}
//创建表
- (IBAction)creat:(UIButton *)sender {
//创建sql语句
NSString *sqlString =@"CREATE TABLE \"Girl\" (\"id\" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , \"name\" TEXT DEFAULT傻逼, \"gender\" TEXT DEFAULT 女, \"age\" INTEGER DEFAULT 18)";
//创建表
char *error = NULL;
int result = sqlite3_exec(db, [sqlStringUTF8String], NULL,NULL, &error);
if (result == SQLITE_OK) {
NSLog(@"创建表成功");
}else {
NSLog(@"创建表失败%s", error);
}
}
//加入数据
- (IBAction)add:(UIButton *)sender {
NSString *string =@"insert into Girl (name, age, gender) values ('奎因', 28, '女')";
char *error = nil;
int result = sqlite3_exec(db, [stringUTF8String], NULL,NULL, &error);
if (result == SQLITE_OK) {
NSLog(@"插入成功");
}else {
NSLog(@"插入失败%s", error);
}
}
- (IBAction)update:(id)sender {
NSString *upDate =@"update Girl set name = '蛮王' where id = 2";
char *error = nil;
int result = sqlite3_exec(db, [upDateUTF8String], NULL,NULL, &error);
if (result == SQLITE_OK) {
NSLog(@"更改成功");
}else {
NSLog(@"更改失败%s", error);
}
}
//删除数据
- (IBAction)delete:(id)sender {
NSString *delete =@"delete from Girl where id = 4";
char *error = nil;
int result = sqlite3_exec(db, [deleteUTF8String], NULL,NULL, &error);
if (result == SQLITE_OK) {
NSLog(@"删除成功");
}else {
NSLog(@"删除失败%s", error);
}
}
//查找方法
- (IBAction)select:(id)sender {
//sql语句
NSString *selectString = @"select * from Girl";
//sql语句指针, statement
sqlite3_stmt *stmt = nil;
//sql语句和指针联系起来
int result = sqlite3_prepare(db, [selectStringUTF8String], -1, &stmt,NULL);
if (result == SQLITE_OK) {
NSLog(@"关联成功");
//单步执行,把查询结果一条一条的找到
//判断有没有一行数据
while (sqlite3_step(stmt) ==SQLITE_ROW) {
//找到某一列的数据
int ID = sqlite3_column_int(stmt,0);
const unsignedchar *name = sqlite3_column_text(stmt,1);
const unsignedchar *gender = sqlite3_column_text(stmt,2);
int age = sqlite3_column_int(stmt,3);
NSString *nameString = [[NSStringalloc] initWithUTF8String:(constchar *)name];
NSString *genderString = [[NSStringalloc] initWithUTF8String:(constchar *)gender];
NSLog(@"%d, %@, %@, %d", ID, nameString, genderString, age);
}
}else {
NSLog(@"关联失败");
}
//释放语句指针
sqlite3_finalize(stmt);
}
//关闭数据库
- (IBAction)close:(id)sender {
//判断数据库是否处于打开状态
if (db == NULL) {
return;
}
//关闭数据库
int result = sqlite3_close(db);
db = NULL;
if (result == SQLITE_OK) {
NSLog(@"关闭数据库成功");
}else {
NSLog(@"关闭数据库失败");
}
}
- IOS开发数据库sqlite
- iOS开发数据库, sqlite,
- IOS开发-SQLite数据库
- iOS开发之SQLite数据库
- iOS 开发之数据库(SQLite)
- iOS开发中的sqlite数据库
- iOS开发 - SQLite数据库(CRUD)
- iOS开发之数据库Sqlite
- IOS开发(94)之SQLite数据库
- iOS开发-数据库-sqlite操作1
- iOS开发-数据库-sqlite操作2
- [IOS 开发] sqlite 使用事务操作数据库
- iOS开发数据库SQLite的使用
- iOS开发 UI高级 SQLite数据库
- iOS开发数据库SQLite的使用
- iOS开发9-iOS操作SQLite数据库增删改查
- ios开发——详解sqlite数据库,封装数据库操作
- ios访问sqlite数据库
- gy_sapling的博客
- 003-spark名词和架构介绍
- 一笔画游戏路径搜索代码<未优化>
- HDU 5014Number Sequence
- 操他妈的逼
- iOS开发数据库, sqlite,
- 004-spark local模式
- 常用排序算法PHP最精确写法
- c语言知识点
- 各种的各种
- 程序员必知的八大排序的关系
- Mac(10.10.4) 下安装idea+部署tomcat+maven
- inflate
- 黑盒测试和白盒测试