SQLite.swift简单实用笔记
2017-11-09 00:00
134 查看
SQLite.swift其实就是sqlite3的高级封装,它提供一种更加友好的方式方便我们实用sqlite, 不需要沃恩直接书写sql语句,因此避免了不安全的数据访问等等. 用着还不错.
简单的查询和参数绑定接口
安全、自动类型数据访问
隐式提交和回滚接口
开发者友好的错误处理和调试
文档完善
通过广泛测试
简单的查询和参数绑定接口
安全、自动类型数据访问
隐式提交和回滚接口
开发者友好的错误处理和调试
文档完善
通过广泛测试
//pod引入,导入头文件 import SQLite /// 创建一个路径保存数据库文件 let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] let db = try? Connection("\(path)/czb.sqlite3") /// 创建表结构 let user = Table("user") let id = Expression<Int64>("id") let name = Expression<String?>("name") let email = Expression<String>("email") //创建数据库插入对应的列 try? db?.run(user.create(ifNotExists: true, block: { (t) in t.column(id, primaryKey: true) t.column(name) t.column(email) })) ///插入数据 // let insert = user.insert(name <- "walden", email <- "walden@126.com") // let rowId = try? db?.run(insert) // let insert2 = user.insert(name <- "Amazing7", email <- "360898864@qq.com") // let rowid2 = (try! db?.run(insert2))! /// 查询所有的数据 if let users = try? db?.prepare(user) { for u in users! { print("\tid:\(u[id]), name: \(u[name]), email: \(u[email])") } } // 修改数据 let update = user.filter(id == 2) try? db?.run(update.update(email <- "hahahaha@qq.com")) if let users = try? db?.prepare(user) { for u in users! { print("\tid:\(u[id]), name: \(u[name]), email: \(u[email])") } } //删除一条数据 try? db?.run(user.filter(id == 2).delete()) print(path) //根据表名字和数据库位置获取表所有的列 let tb = Table.init("user", database: "\(path)/czb.sqlite3") if let tb = try? db?.prepare(user) { for u in tb! { print("\tid:\(u[id]), name: \(u[name]), email: \(u[email])") } } /// 筛选和查询 let query = tb.select(email) //select "email" from user .filter(name != nil) //where "name" is not ull .order(email.desc, name) //order by "email" desc, name .limit(5, offset: 3) //limit 5 offset 3 /* 数据转换 这个时候单纯的table是不够用了,作者就把方法写到了db里面。 scalar:聚合,用来获得对应想要的数值,一般用于获得count,max,min,avg,sum,totle等 prepare:获得所有元素值,然后使用for循环进行遍历(在for循环中,如果想要某个元素的值,你需要使用let idNum = item[id]id为column对象) pluck:获得一行,如果是选取了所有,那么获得第一行 run:用来执行delete,update,insert,create语句 trace:每次执行sql语句都要执行这里面的内容。(db.trace { print($0) }在执行db的所有方法前,使用这句,会在每次执行的时候都输出sql语句) excuse:直接执行SQL语句,为了方便写习惯了SQL语句的人。 */
相关文章推荐
- 温故而知新--Linux学习笔记(二)实用的简单命令的简单用法
- nginx 简单实用配置——笔记篇
- Android下SQLite的简单实用
- 学习笔记:WKWebView的简单使用(Swift)
- devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用
- ActiveSQLite更简单的Swift数据库方案(SQLite.swift封装)
- sqlite3 简单实用方法
- 工作笔记(二)spring jdbcTemplate多数据源简单实用
- 将Access数据库导入到SQLite最简单最实用的方法 -转
- 数据链路层及交换机的简单实用【笔记】
- git简单实用笔记
- fast-json的简单实用笔记
- Swift笔记 使用SwiftData和sqlite的环境设置
- Swift 学习笔记一 基本数据类型和简单语句语法
- 如何学习android(看stay4it的笔记)+android stdio简单实用简介
- Android自学笔记-10-Sqlite的简单使用
- swift开发笔记8 - sqlite3数据的使用(xcode 7,ios9)
- swift--button的简单实用
- Swift-Realm简单使用,代替Sqlite、Crodata的强大数据库
- 对sqlite3的一点简单实用的封装