vapor sqlite3

config

try services.register(SQLiteProvider())

custom config

// Configure a SQLite database
let sqlite = try SQLiteDatabase(storage: .file(path: "db.sqlite")) //文件存儲
let sqlite = try SQLiteDatabase(storage: .memory) //內存中存儲

/// Register the configured SQLite database to the database config.
var databases = DatabasesConfig()
databases.add(database: sqlite, as: .sqlite)
services.register(databases)

開啟sql log

databaseConfig.enableLogging(on: DatabaseIdentifier<SQLiteDatabase>.sqlite)

準備導入庫

import SQLite
import DatabaseKit

filter

Todo.query(on: req).filter(\.id, .greaterThan, 1).all()

let users = try User.query(on: conn)
    .filter(\.name, .equal, "Vapor")
    .all()

Quesry

   struct SQLiteVersion: Codable {
        let version: String
    }
    
    router.get("sql") { (req) -> EventLoopFuture<String> in
        let result =  req.withPooledConnection(to: DatabaseIdentifier<SQLiteDatabase>.sqlite, closure: { (conn:SQLiteConnection) -> EventLoopFuture<[SQLiteVersion]> in
            return   conn.select().column(GenericSQLExpression.function("sqlite_version"), as: GenericSQLIdentifier.init("version")).all(decoding:SQLiteVersion.self)
        })
        return   result.map({ (rows) -> String in
            return rows[0].version
        })
    }

【關于EventLoopFuture】
Functions that promise to do work asynchronously can return an EventLoopFuture<T>. The recipient of such an object can then observe it to be notified when the operation completes.
The provider of a EventLoopFuture<T> can create and return a placeholder object before the actual result is available. For example:


func getNetworkData(args) -> EventLoopFuture<NetworkResponse> {
    let promise: EventLoopPromise<NetworkResponse> = eventLoop.newPromise()
    queue.async {
        . . . do some work . . .
        promise.succeed(response)
        . . . if it fails, instead . . .
        promise.fail(error)
    }
    return promise.futureResult
}

Query Select Example

 struct User: SQLTable, Codable, Content {
        static let sqlTableIdentifierString: String = "users"
        let id: Int?
        let name: String
    }
    
    router.get("nsql") { (req) -> EventLoopFuture<Array<User>> in
        
    let result =    req.withPooledConnection(to: DatabaseIdentifier<SQLiteDatabase>.sqlite,
                                 closure: { (conn) -> EventLoopFuture<[User]> in
                                    let users =  conn.select()
                                        .all().from(User.self)
                                        .where(\User.name=="Vapor")
                                        .all(decoding: User.self)
                                    
                                    return users
        })
        return result
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末露筒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拒名,老刑警劉巖铸抑,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡属拾,警方通過查閱死者的電腦和手機航唆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門胀蛮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人糯钙,你說我怎么就攤上這事粪狼。” “怎么了任岸?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵再榄,是天一觀的道長。 經(jīng)常有香客問我享潜,道長困鸥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任米碰,我火速辦了婚禮窝革,結果婚禮上,老公的妹妹穿的比我還像新娘吕座。我一直安慰自己虐译,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布吴趴。 她就那樣靜靜地躺著漆诽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厢拭,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天兰英,我揣著相機與錄音,去河邊找鬼供鸠。 笑死畦贸,一個胖子當著我的面吹牛,可吹牛的內容都是我干的楞捂。 我是一名探鬼主播薄坏,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寨闹!你這毒婦竟也來了胶坠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤繁堡,失蹤者是張志新(化名)和其女友劉穎沈善,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椭蹄,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡闻牡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了塑娇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澈侠。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖埋酬,靈堂內的尸體忽然破棺而出哨啃,到底是詐尸還是另有隱情,我是刑警寧澤写妥,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布拳球,位于F島的核電站,受9級特大地震影響珍特,放射性物質發(fā)生泄漏祝峻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一扎筒、第九天 我趴在偏房一處隱蔽的房頂上張望莱找。 院中可真熱鬧,春花似錦嗜桌、人聲如沸奥溺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浮定。三九已至相满,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桦卒,已是汗流浹背立美。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留方灾,地道東北人建蹄。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像迎吵,于是被迫代替她去往敵國和親躲撰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容