IOS学的容易----单例类对数据库的具体的操作的⽅法进⾏封装(二)

本文介绍了一个Objective-C类,用于实现SQLite数据库的基本操作,包括删除、更新、查询单个及所有记录。通过实例展示了如何使用SQL语句进行数据管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 删除数据
- (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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值