zoukankan      html  css  js  c++  java
  • SQLITE的增删改查的简单运用举例

    //数据库的增加操作

    -(void)addDate

    {

        NSLog(@"增加");

    //    唯一数据库,存储数据库指针

        sqlite3 *db;

    //    创建执行命令对象

        sqlite3_stmt *stmt;

    //    根据指定文件路径打开数据库

        sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);

    //    执行预处理命令,返回一个int类型的值,返回0 则可执行命令,返回其他 不可执行,语句里面的参数 db :数据库指针  "insert into students (stuname,stupro,stunum,stupwd,stuadd,stuage) values(?,?,?,?,?,?)":sql语句,数据库的增加操作  -1:sql语句的长度,如果为负的,自动计算sql语句长度,把sql语句当成以结尾的字符串)。  &stmt:是sqlite3_stmt 的指针的指针。解析以后的sql语句就放在这个结构里

        int rst=sqlite3_prepare_v2(db, "insert into students (stuname,stupro,stunum,stupwd,stuadd,stuage) values(?,?,?,?,?,?)", -1, &stmt, nil);

    //    绑定数据信息 注意:这里的数字1,2,3,4,5,6,代表 执行预处理命令语句中的 ?的位置

        sqlite3_bind_text(stmt, 1, "lisi", -1, nil);

        sqlite3_bind_text(stmt, 2, "jixie", -1, nil);

        sqlite3_bind_text(stmt, 3, "15899343588", -1, nil);

        sqlite3_bind_text(stmt, 4, "98836", -1, nil);

        sqlite3_bind_text(stmt, 5, "chongqing", -1, nil);

        sqlite3_bind_text(stmt, 6, "26", -1, nil);

    //    返回0 可以执行命令

        if (rst==SQLITE_OK) {

    //        执行完成

            if (SQLITE_DONE==sqlite3_step(stmt)) {

                NSLog(@"添加成功");

            }

        } else {

            NSLog(@"添加失败");

        }

    }

    //数据库的删除操作

    -(void)deleteDate

    {

        NSLog(@"删除");

    //    创建唯一数据库,存储数据库指针

        sqlite3 *db;

    //    创建执行命令

        sqlite3_stmt *stmt;

    //    根据指定数据库文件路径打开数据库

        sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);

        //    执行预处理命令,返回一个int类型的值,返回0 则可执行命令,返回其他 不可执行,语句里面的参数1 db :是个sqlite3 * 类型变量   参数2 "delete from students where stuid=1":sql语句,数据库的删除操作  参数3  -1:sql语句的长度,如果为负的,自动计算sql语句长度,把sql语句当成以结尾的字符串)。  参数4 &stmt:是sqlite3_stmt 的指针的指针。解析以后的sql语句就放在这个结构里

        int rst=sqlite3_prepare_v2(db, "delete from students where stuid=1", -1, &stmt, nil);

        if (rst==SQLITE_OK) {

            if (SQLITE_DONE==sqlite3_step(stmt)) {

                NSLog(@"删除成功");

            }

        } else {

            NSLog(@"删除失败");

        }

    }

    //数据库的修改操作

    -(void)updateDate

    {

        NSLog(@"修改");

        

        sqlite3 *db;

        sqlite3_stmt *stmt;

        sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);

    //    "update students set stuname='mmm' ,stuage='100' where stuid=4" sql语句 数据库的修改操作

        int rst = sqlite3_prepare_v2(db, "update students set stuname='mmm' ,stuage='100' where stuid=4", -1, &stmt, nil);

        if (rst==SQLITE_OK) {

            if (SQLITE_DONE==sqlite3_step(stmt)) {

                NSLog(@"修改成功");

            }

        } else {

            NSLog(@"修改失败");

        }

    }

    //数据库的全局查询操作

    -(void)selectDate

    {

        NSLog(@"查询");

        

        sqlite3 *db;

        sqlite3_stmt *stmt;

        sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);

    //    "select *from students" sql语句 数据库的查询操作

        int rst=sqlite3_prepare_v2(db, "select *from students", -1, &stmt, nil);

        if (rst==SQLITE_OK) {

            while (sqlite3_step(stmt)==SQLITE_ROW) {

    //            循环便利数据库中的行的信息

                NSLog(@"stuid = %d",sqlite3_column_int(stmt, 0));

                NSLog(@"名字 = %@", [NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 1)]);

                NSLog(@"专业 = %@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 2)]);

                NSLog(@"电话 = %@",[NSString stringWithFormat:@"%s", sqlite3_column_text(stmt, 3) ]);

                NSLog(@"密码 = %@",[NSString stringWithFormat:@"%s", sqlite3_column_text(stmt, 4) ]);

                NSLog(@" = %@",[NSString stringWithFormat:@"%s", sqlite3_column_text(stmt, 5) ]);

                NSLog(@"年龄 = %d",sqlite3_column_int(stmt, 6));

            }

        }

    }

    //数据库的局部查询(登录)操作

    -(void)loginPage

    {

        NSLog(@"登录");

        sqlite3 *db;

        sqlite3_stmt *stmt;

        sqlite3_open([[[NSBundle mainBundle]pathForResource:@"ios2classinfo" ofType:@"sqlite"] UTF8String], &db);

    //    "select stuname , stupwd from students where stuname=? and stupwd=?" sql语句 数据库的局部查询操作(登录)

        int rst = sqlite3_prepare_v2(db, "select stuname , stupwd from students where stuname=? and stupwd=?", -1, &stmt, nil);

        sqlite3_bind_text(stmt, 1, "shali", -1, nil);

        sqlite3_bind_text(stmt, 2, "520lh", -1, nil);

        if (rst==SQLITE_OK) {

            if (SQLITE_ROW==sqlite3_step(stmt)) {

                NSLog(@"登录成功");

            }

        } else {

            NSLog(@"登录失败");

        }

        

        

    }

  • 相关阅读:
    代理模式
    面向对象设计原则
    砝码破碎
    阿里EasyExcel使用
    IBM的OpenJ9
    java反射 (复习)
    DecimalFormat保留小数
    Object类
    SQLMAP用法
    SQL盲注之时间注入
  • 原文地址:https://www.cnblogs.com/Always-LuoHan/p/5308808.html
Copyright © 2011-2022 走看看