我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Swift版的SQLite帮助类怎么创建

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Swift版的SQLite帮助类怎么创建

这篇文章主要讲解了“Swift版的SQLite帮助类怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Swift版的SQLite帮助类怎么创建”吧!

SQLiteHelper

创建SQLiteHelper类

///  SQLite数据库处理帮助类
///
///  此类中封装了关于SQLite数据库处理的业务函数
class SQLiteHelper
{
    // 业务代码...}

单例

private static let instance = SQLiteHelper()/// 单例  全局的数据访问接口class var sharedInstance: SQLiteHelper
{return instance
}

全局变量

var db: COpaquePointer = nil

打开数据库

///  打开数据库//////  :param: dbName 数据库名称//////  :returns: 返回 是否打开成功func openDatabase(dbName: String) -> Bool
{let path = dbName.documentPath()
    println(path)return sqlite3_open(path, &db) == SQLITE_OK
}

创建示例数据表

///  创建 T_Department 和 T_Employee 表//////  :returns: 返回 是否创建成功func createTable() -> Bool
{
    let sql = "CREATE TABLE \n" +"IF NOT EXISTS T_Department (\n" +"id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\n" +"DepartmentNo CHAR(10) NOT NULL DEFAULT '',\n" +"Name CHAR(50) NOT NULL DEFAULT '' \n" +"); \n" +"CREATE TABLE IF NOT EXISTS T_Employee ( \n" +"'id' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \n" +
        "'name' TEXT NOT NULL, \n" +
        "'age' INTEGER NOT NULL, \n" +
        "'department_id' INTEGER, \n" +
        "CONSTRAINT 'FK_DEP_ID' FOREIGN KEY ('department_id') REFERENCES 'T_Department' ('id') \n" +
    ");"
    // 返回结果
    return execSql(sql)
}

执行INSERT、UPDATE、DELETE 语句

///  执行INSERT、UPDATE、DELETE SQL语句//////  :param: sql SQL语句//////  :returns: 返回 是否执行成功func execSql(sql: String) -> Bool
{// 返回结果
   return sqlite3_exec(db, sql.cStringUsingEncoding(NSUTF8StringEncoding)!, nil, nil, nil) == ITE_OK
}

执行SQL语句 返回结果数量

///  执行SQL语句 返回结果数量//////  :param: sql SQL语句//////  :returns: 返回 结果func execCount(sql: String) -> Int
{let record = execRecordSet(sql)// 返回结果return (record[0] as! [AnyObject])[0] as! Int
}

执行返回单条记录

///  执行返回单条记录//////  :param: sql SQL语句//////  :returns: 返回 单条记录func execRow(sql: String) -> [AnyObject]?
{let record = execRecordSet(sql)if record.count > 0{return (record[0] as! [AnyObject])
    }else{return nil
    }
}

执行 SQL 返回结果集合

///  执行 SQL 返回结果集合//////  :param: sql SQL语句//////  :returns: 返回 查询的结果集func execRecordSet(sql: String) -> [AnyObject]
{var stmt: COpaquePointer = nilvar recordList = [AnyObject]()if sqlite3_prepare_v2(db, sql.cStringUsingEncoding(NSUTF8StringEncoding)!, -1, &stmt, nil) == TE_OK
    {while sqlite3_step(stmt) == SQLITE_ROW
        {
            recordList.append(singleData(stmt)!)
        }
    }// 释放语句sqlite3_finalize(stmt)// 返回结果return recordList
}

执行一行数据

///  执行一行数据//////  :param: stmt 执行的语句//////  :returns: 返回一行数据数组func singleData(stmt: COpaquePointer) -> [AnyObject]?
{var result = [AnyObject]()// 返回该表的列数let count = sqlite3_column_count(stmt)//        #define SQLITE_INTEGER  1//        #define SQLITE_FLOAT    2//        #define SQLITE_BLOB     4//        #define SQLITE_NULL     5//        #ifdef SQLITE_TEXT//        # undef SQLITE_TEXT//        #else//        # define SQLITE_TEXT     3//        #endif//        #define SQLITE3_TEXT     3for index in 0..<count
    {let type = sqlite3_column_type(stmt, index)// 根据字段的类型,提取对应列的值switch type {case SQLITE_INTEGER:
            result.append(Int(sqlite3_column_int64(stmt, index)))case SQLITE_FLOAT:
            result.append(sqlite3_column_double(stmt, index))case SQLITE_NULL:
            result.append(NSNull())case SQLITE_TEXT:let rrrrr: UnsafePointer<UInt8> = sqlite3_column_text(stmt, index)let chars = UnsafePointer<CChar>(sqlite3_column_text(stmt, index))let str = String(CString: chars, encoding: NSUTF8StringEncoding)!
            result.append(str)case let type:
            println("不支持的类型 \(type)")
        }
    }// 返回结果return result
}

感谢各位的阅读,以上就是“Swift版的SQLite帮助类怎么创建”的内容了,经过本文的学习后,相信大家对Swift版的SQLite帮助类怎么创建这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Swift版的SQLite帮助类怎么创建

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python元类是怎么创建一个类的

本篇内容介绍了“Python元类是怎么创建一个类的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果你看过比较优秀的 Python 开源框架
2023-06-15

怎么创建一个创建MySQL数据库中的datetime类型

今天小编给大家分享一下怎么创建一个创建MySQL数据库中的datetime类型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-06-29

python的序列类型range怎么创建

这篇“python的序列类型range怎么创建”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python的序列类型range
2023-06-26

java怎么创建一个类的对象

在Java中,可以通过以下步骤创建一个类的对象:1. 首先,你需要创建一个类。一个类是一个模板,用于定义对象的属性和方法。```javapublic class MyClass { // 定义类的属性 private int m
2023-10-11

怎么在桌面创建我的电脑win10英文版

今天小编给大家分享一下怎么在桌面创建我的电脑win10英文版的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。桌面我的电脑win
2023-07-01

Oracle表中怎么创建一个VARCHAR类型的列

Oracle表中创建VARCHAR列Oracle中的VARCHAR(可变字符)列用于存储可变长度的字符数据。要创建VARCHAR列,请使用SQLCREATETABLE语句并指定最大长度(字节数),例如:CREATETABLEtable_name(column_nameVARCHAR2(max_length));VARCHAR2数据类型允许超过1个字节的字符,并支持Unicode字符。VARCHAR列只存储实际存储的数据,节省存储空间。可以索引VARCHAR列,但效率不如CHAR列。
Oracle表中怎么创建一个VARCHAR类型的列
2024-05-13

怎么用Java创建一个LOL中的英雄类和怪物类

本篇内容主要讲解“怎么用Java创建一个LOL中的英雄类和怪物类”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java创建一个LOL中的英雄类和怪物类”吧!Java习题第一题题目:创建一个
2023-06-27

SAP MM怎么看自定义移动类型是怎么创建的

这篇文章主要介绍“SAP MM怎么看自定义移动类型是怎么创建的”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SAP MM怎么看自定义移动类型是怎么创建的”文章能帮助大家解决问题。【SAP技术】SAP
2023-06-05

在matlab中怎么创建类似字典的数据结构

本篇内容介绍了“在matlab中怎么创建类似字典的数据结构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!matlab中创建类似字典的数据结构
2023-07-05

C#值类型、引用类型、泛型、集合的表达式树怎么创建

这篇文章主要介绍了C#值类型、引用类型、泛型、集合的表达式树怎么创建的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#值类型、引用类型、泛型、集合的表达式树怎么创建文章都会有所收获,下面我们一起来看看吧。一,定
2023-06-26

Win11 Build 25309 预览版怎么创建ReFS格式的VHD虚拟磁盘?

微软于今年 1 月,为 Win11 系统添加了弹性文件系统(ReFS)的支持。根据国fvUunqdg外网友 PhantomOcean3 最新推文爆料,在 Win11 Build 25309 预览版更新中,微软隐藏了一项基于 ReFS 的新特
2023-05-19

怎么使用SAP CRM AET工具创建类型为下拉列表的扩展字段

本篇文章为大家展示了怎么使用SAP CRM AET工具创建类型为下拉列表的扩展字段,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通过应用程序扩展工具创建扩展字段时,此工具似乎不支持代码列表(或下拉列
2023-06-04

编程热搜

目录