zoukankan      html  css  js  c++  java
  • IOS-sqlite3数据库: create table数据库表及对数据库表的增删改查(create/insert/delete)

    1.步骤是:

    先加入sqlite开发库libsqlite3.dylib,

    新建或打开数据库,

    创建数据表,

    插入数据,

    查询数据并打印

    2、sqlite 的方法

    sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似

    sqlite3_stmt *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句

    sqlite3_open(),    打开数据库,没有数据库时创建。
    sqlite3_exec(),    执行非查询的sql语句
    Sqlite3_step(),    在调用sqlite3_prepare后,使用这个函数在记录集中移动。
    Sqlite3_close(),   关闭数据库文件
    还有一系列的函数,用于从记录集字段中获取数据,如
    sqlite3_column_text(),      取text类型的数据。
    sqlite3_column_blob(),取blob类型的数据
    sqlite3_column_int(),       取int类型的数据

    3.数据库表的操作:create及update/insert/delete/select

     

     //创建数据库表(Create Table)

    + (BOOL)createTable {

      //判断数据库是否打开

                if ([shareDataBase open]) {

                        //如果表 inner_ac_info不存在,就创建,包含字段列名_id(数据类型为integer,主键,自动递增),ac_name(数据类型为varchar),iu_no(数据类型为varchar),ou_no(数据类型为varchar), gw_ip(数据类型为varchar).

                        NSString *sql = @"CREATE TABLE IF NOT EXISTS inner_ac_info (_id  integer primary key autoincrement, ac_name varchar, iu_no  varchar,  ou_no  varchar, gw_ip  varchar)";

                        [shareDataBase executeUpdate:sql];

                  

                        NSString *sql1 = @"CREATE TABLE IF NOT EXISTS ac_mode_info (_id  integer primary key autoincrement, ac_mode_name varchar, on_off  integer,  speed integer, work_mode  integer, temp  integer)";

                        [shareDataBase executeUpdate:sql1];

     

                    

                        NSString *sql2 = @"CREATE TABLE IF NOT EXISTS ac_mode_inner_ac (_id  integer primary key autoincrement, ac_mode_id long, ac_id  long)";

                

                        [shareDataBase executeUpdate:sql2];       

    //                [shareDataBase close];

         }

     

    SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增.

    关键字 AUTOINCREMENT 只能用于整型(INTEGER)字段。

    /**

     

     

     

     //查询数据库表

    + (NSArray *)getAcList{

            NSMutableArray *acarray = [[NSMutableArray alloc] init];

            [self init];

            if ([shareDataBase open]) {

                //查询数据库表下面一句

                FMResultSet *s = [shareDataBase executeQuery:[NSString stringWithFormat:@"SELECT * FROM inner_ac_info"]];

              //相当于 NSString *string = [NSString stringWithFormat:@"SELECT * FROM inner_ac_info"

             //+        FMResultSet *s = [shareDataBase executeQuery:string];

               while ([s next]) {

                    Airconditioner *ac = [[Airconditioner alloc] init];

                    ac.acId = [NSNumber numberWithInt:[s intForColumn:@"_id"]];

                    ac.rmname = [s stringForColumn:@"ac_name"];

                    ac.aciuNo = [s stringForColumn:@"iu_no"];

                    ac.acouNo = [s stringForColumn:@"ou_no"];

                    ac.gwIp   = [s stringForColumn:@"gw_ip"];

                   [acarray addObject:ac];

                }

               //关闭数据库

                [shareDataBase close];

            }

            return acarray;

    }

     

    //更新数据库表的修改(update)

    + (void)updateAc: (Airconditioner*) ac{

        

        [self init];

        NSLog(@"AcId =========%@",ac.acId);

        if ([shareDataBase open]) {

           //数据库表执行更新操作:修改id对应的nkname

            [shareDataBase executeUpdate:

             @"UPDATE  inner_ac_info  set ac_name = ?  where _id = ?",ac.nkname, ac.acId];

            [shareDataBase close];

        }

    }

     

    //删除数据库表

    //删除部分

    + (void)deleteAc:(NSString*)iuNo with:(NSString*) ouNo{

        [self init];

        if ([shareDataBase open]) {

            [shareDataBase executeUpdate:

             @"delete from inner_ac_info where iu_no = ? and ou_no = ?", iuNo, ouNo];

           [shareDataBase close];

        }

    }

    //删除全部

    + (void)deleteAllAc{

        [self init];

        if ([shareDataBase open]) {

            [shareDataBase executeUpdate:

             @"delete from  inner_ac_info"];

            [shareDataBase close];

        }

    }

     

     

     

     

     

     

  • 相关阅读:
    Spring注解@Resource和@Autowired区别对比
    Http请求中Content-Type讲解以及在Spring MVC中的应用
    解决SpringMVC的@ResponseBody返回中文乱码
    JVM之类加载器下篇
    JVM之类加载器中篇
    JVM之类加载器上篇
    HashMap的resize和Fail-Fast机制
    HashMap的实现原理
    Tomcat中JVM内存溢出及合理配置
    redis的主从复制,读写分离,主从切换
  • 原文地址:https://www.cnblogs.com/yuyu-2012/p/4813466.html
Copyright © 2011-2022 走看看