今天介绍下iOS中的老牌数据库框架FMDB在Swift中的使用以及常用的SQL语句
在Swift中建议使用单例创建工具类的方法
1 | class SQLiteManager: NSObject { |
建表
在工具类中实现创建并打开数据库的方法
1.创建表
1 | private func createStatusTable() |
2.打开表
1 | func openDB(DBName:String) |
3.在AppDelegate中调用方法
1 | // 打开数据库 |
到此为止建表操作已经结束
插入数据
在iOS开发中我们通常获取网络数据,并插入到数据库中
在网络请求之后将JSON数据插入数据库的过程:
tips:让本地和网络返回的数据类型保持一致, 以便于后期处理
1 | /// 缓存微博数据 |
读取数据
1 | class func loadCacheStatuses(since_id: Int, max_id: Int, finished: ([[String: AnyObject]])->()) { |
// 1.从本地数据库中获取
loadCacheStatuses(since_id, max_id: max_id) { (array) -> () in
if !array.isEmpty
{
print(“从数据库中获取”)
finished(array, error: nil)
return
}
//从网络获取 并调用缓存方法
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
```sql
CREATE TABLE IF NOT EXISTS "T_Person" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"age" INTEGER,
"heigth" REAL
)
//下边是sqllite编译器里边的语句
/*简单约束*/
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
);
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE,
age INTEGER
);
/*添加主键*/
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER,
score REAL
);
/*添加主键*/
CREATE TABLE IF NOT EXISTS t_student
(
id INTEGER,
name TEXT,
age INTEGER,
score REAL,
PRIMARY KEY(id)
);
查询
1 | /*分页*/ |
修改
1 | UPDATE t_student |
删除
1 | DELETE FROM t_student; |
插入
1 | INSERT INTO t_student |