SQLite3 Swift
来源:互联网 发布:php oa系统模块 编辑:程序博客网 时间:2024/05/16 23:41
sqlite3在Swift创建方法
引入libsqlite3.dylib
然后添加 工程名-Bridging-Header.h 里面添加#import “sqlite3.h"
然后去工程里build Settings里找到Swift Compiler - Code Generation里的
Objective-C Bridging Header添加进入刚刚的 工程名-Bridging-Header.h
整形 INTEGER
sqlite3_stmt 用于保存编译好的SQL语句
sqlite3_open() 打开数据库,没有数据库时创建
sqlite3_exec() 执行非查询的sql语句
sqlite3_step() 在调用sqlite3_prepare后,使用这个函数在记录集中移动
sqlite3_close() 关闭数据库文件
sqlite3_column_text() 取text类型的数据
sqlite3_column_blob() 取blob类型的数据
sqlite3_column_int() 取int类型的数据
NSHomeDirectory()//得到应用程序目录的路径,在该目录下有三个文件夹Documents、Library、temp以及一个.app包!
let path = “\(NSHomeDirectory())/Documents” //在应用程序目录的路径下Documents文件夹var dbName = “TextSqlite3” //数据库名字var dbHandel:COpaquePointer = nil //C指针操作 对应于C语言中 Void *var dataBase = “\(path)/\(dbName)” //数据库存储位置包括名字
/*********打开数据库(如果没有则会创建该数据库)***************/
//sqlite3_open(filename:UnsafePointer<Int8>,ppDb:UnsafeMutablePointer<COpaquePointer>) 第一个参数为数据库路径加名字 第二个参数为C指针
</pre><span style="color: rgb(51, 51, 51);"></span><pre name="code" class="plain">let result = sqlite3_open(dataBase,&dbHandel) //返回值为Int32 返回0表示成功,1表示失败
/**************创建表*********************/
var Create = “CREATE TABLE TEST(id INTEGER PRIMARY KEY,name TEXT)” //创建表
//sqlite3_exec(COpaquePointer,sql:UnsafePointer<Int8>,callback:CFunctionPointer<((UnsafeMutablePointer<Void>,Int32,UnsafeMutablePointer<UnsafeMutablePointer<Int8>>,Unsafemuta,UnsafeMutablePointer<Void>,errmsg:UnsafeMutablePointer<UnsafeMutablePointer<Int8>)
参数1 C指针 参数2 SQL语句 参数3 回调函数 参数4 直接写nil 参数5 作为错误信息,用以代码调试
var result = sqlite3_exec(dbHandel,Create,nil.nil.nil)if result == SQLITE_OK { println(“成功")}
/**************添加数据******************/
var Insert = “INSERT INTO test(id,name) VALUES(1,’aaa')"var result = sqlite3_exec(dbHandel,Insert,nil,nil,nil)if result == SQLITE_OK { println(“插入成功")}else { println(“插入失败")}
/******添加数据2...数据捆绑***********/
var Insert = “INSERT INTO test(id,name) VALUES(?,?)"var stmt:COpaquePointer = nil//sqlite3_prepare_v2(db:COpaquePointer,zSql:UnsafePointer<Int8>,nByte:Int32ppStmt:UnsafeMutablePointer<COpaquePointer>,pzTail:UnsafeMutablePointer<UnsafePointer<Int8>>)参数1 C指针 参数2 SQL语句 参数3 sql长度(如果设置为-1,则代表系统会自动计算sql语句的长度), 参数4 用来取数据 参数5 一般用不上直接nilvar result = sqlite3_prepare_v2(dbHandel,Insert,-1,&stmt,nil)if result == SQLITE_OK { //参数1 stmt类型变量prepare_v2使用过,参数2 所约束变量标签的index 参数3要加入的值 sqlite3_bind_int(stmt,1,4) //参数1 参数2 参数3同上 参数4代表第二个参数中需要传递的长度,-1表示全部字符串 参数5 回调函数,比如执行后做内存清楚工作等. sqlite3_bing_text(stmt,2,’XXXXX’,-1,nil)}if sqlite3_step(stmt) != SQLITE_DONE { println(“没插入数据") sqlite3_finalize(stmt)}
/************数据查询***************/
var SELECT = “SELECT * FROM text"var stmt:COpaquePointer = nilvar result = sqlite3_prepare_v2(dbHandel,SELECT,-1,&stmt,nil)if result == SQLITE_OK { if sqlite3_step(stmt) == SQLITE_ROW { var id = sqlite3_colum_int(stmt,0) //返回值为Int32类型 //text属性返回值为UnsafePointer<Uint8>类型所以要强制转换为Sring var string = sqlite3_colum_text(stmt,1) var name = String.fromCString(UnsafePointer<Uint8>(string)) }}
查询与添加捆绑数据约束标签参数不同..查询从0开始代表第一列 添加1开始代表第一列
0 0
- SQLite3 Swift
- swift sqlite3 学习心得
- swift sqlite3使用
- IOS swift版 sqlite3详解
- sqlite3数据库增删改查通用类swift
- Swift - 操作SQLite数据库(引用SQLite3库)
- Swift - 操作SQLite数据库(引用SQLite3库)
- Swift - 操作SQLite数据库(引用SQLite3库)
- iOS 源生SQLite3 “增删改查”(Swift-OC混编)
- 使用SQLite.Swift实现SQLite3.0的读写
- sqlite3
- sqlite3
- sqlite3
- sqlite3
- sqlite3
- sqlite3
- SQLite3
- Sqlite3
- awk--文本列编辑
- C++ GDI+ 画线/边框
- Unity3D热更新全书-何谓热更新,为何热更新,如何热更新
- 《一九八四》读后感
- hdu 4946 Area of Mushroom 计算几何
- SQLite3 Swift
- 泛型(2)---》泛型中的构造方法
- svg点击事件不灵敏之解决方案
- 野芭蕉V1.1.1-15.0429.1338
- 关系代数SQL实现
- AMBA Bus Architecture
- C++后台服务程序开发模式
- 字符串分割函数strtok()
- Windows服务编写综述