OC FMDB有 深度 的DEMO

2021-07-14 21:35:06 字數 4293 閱讀 8699

一)、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 難以大規模並行化。資料並行不夠,用模型並行後加速比就會大打...