一)、fmdb框架中重要的框架類
fmdatabase
fmdatabase物件就代表乙個單獨的sqlite資料庫,用來執行sql語句
fmresultset
使用fmdatabase執行查詢後的結果集
fmdatabasequeue
用於在多執行緒中執行多個查詢或更新,它是執行緒安全的
二)、fmdb思維導圖
ios2期思維導圖學習
一)、封裝結構
二)、模組**
/** 表名 */
`#define ktable_username1 @"ktable_username1"
/** 乙個存資料庫需要的標頭檔案 */
#import "fmdb.h"
#import "dao.h"
#import "databasemanager.h"
@implementation
databasemanager
//單例
+(instancetype)sharedmanager);
return manager;
}- (instancetype)init
return
self;
}@end
- (fmdatabasequeue *)databasequeue
+ (void)creattableifneed
}];}
@inte***ce userdao : dao //一定要繼承dao,不然self點不出來databasequeue的
///單例
+(instancetype)sharedinstance;
/*! * 插入資料
*/- (bool)insertuserdto:(userdto *)dto
;/*!
* 獲取資料
*/- (nsarray *)loaduserdata;
/*! * 修改資料
*/- (bool)updateuserdto:(userdto *)dto
;/*!
* 刪除某個模型
*/- (bool)deleteuserdto:(userdto *)dto
;@end
三)、常用sql語句
建立表
create
table
ifnot
exists
"t_person" (
"id"
integer
notnull primary key autoincrement,
"name"
text,
"age"
integer,
"heigth"
real
)//下邊是sqllite編譯器裡邊的語句
/*簡單約束*/
create
table
ifnot
exists t_student
( id
integer primary key autoincrement,
name
text,
age integer
);create
table
ifnot
exists t_student
( id
integer primary key autoincrement,
name
text
unique,
age integer
);/*新增主鍵*/
create
table
ifnot
exists t_student
( id
integer primary key autoincrement,
name
text,
age integer,
score real
);/*新增主鍵*/
create
table
ifnot
exists t_student
( id
integer,
name
text,
age integer,
score real,
primary key(id)
);
查詢
/*分頁*/
select * from t_student
order
byid
asclimit
30, 10;
/*排序*/
select * from t_student
where score > 50
order
by age desc;
select * from t_student
where score < 50
order
by age asc , score desc;
/*計量*/
select count(*)
from t_student
where age > 50;
/*別名*/
select name
as myname, age as myage, score as myscore
from t_student;
select name myname, age myage, score myscore
from t_student;
select s.name myname, s.age myage, s.score myscore
from t_student s
where s.age > 50;
/*查詢*/
select name, age, score from t_student;
select * from t_student;
更新
update t_student
setname = 'mm'
where age = 10;
update t_student
setname = 'ww'
where age is
7;update t_student
setname = 'xxoo'
where age < 20;
update t_student
setname = 'nnmm'
where age < 50
and score > 10;
/*更新記錄的name*/
update t_student set
name = 'zhangsan';
刪除
delete
from t_student;
delete
from t_student where age < 50;
插入
insert
into t_student
(age, score, name)
values
('28', 100, 'zhangsan');
insert
into t_student
(name, age)
values
('lisi', '28');
insert
into t_student
(score)
values
(100);
刪除表
/*刪除表*/
drop
table
ifexists t_student;
深度優先搜尋 簡單demo
輸入乙個數n,輸出 1 n 的全排列,例如輸入 3,全排列則為 123,132,213,231,312,321 一共六種。這裡採用深度優先搜尋來解決這個問題 includeint n int a 10 book 10 遞迴核心 void dfs int step printf n return 返回...
有深度,面試有用的題
1.jdk1.5新增的功能 2.字元流和位元組流的區別,使用場景,相關類 3.執行緒安全的概念,實現執行緒安全的幾種方法 4.抽象類和介面的區別,使用場景 5.hash演算法的實現原理,hashcode的實現原理 error和exception的區別,runtimeexception和非runtim...
深度學習領域有什麼瓶頸?
知乎 深度學習領域有哪些瓶頸?peng bo的回答 知乎 個人認為,當前深度學習的瓶頸,可能在於 scaling。是的,你沒有聽錯。我們已經有海量的資料,海量的算力,但我們卻難以訓練大型的深度網路模型 gb 到 tb 級別的模型 因為 bp 難以大規模並行化。資料並行不夠,用模型並行後加速比就會大打...