本文將結合實際操作與代碼示例,展示SQL 在 Kooboo 中的實際應用
僅需兩步:動態創建表 + 基礎查詢,無需復雜配置,快速上手!
一、動態創建表:插入數據
Kooboo?支持多種數據庫,以 SQLite 為例,在數據插入方面提供了靈活的方式。既可以通過傳統的先建表、定義字段,再插入數據的方式;也支持動態插入,即無需手動建表!當插入數據時若表或字段不存在時,會自動創建相應字段。
- 在創建完站點后,進入編輯菜單 -> 選擇數據庫類型
示例:創建?user
?表:
// 1. 定義數據對象
var obj = {}
obj.id = '1'; // 主鍵(若不指定,系統自動生成Guid)
obj.id = '2';
obj.name = '王強'
obj.name = '老六'
obj.phone = '10086';k.DB.sqlite.user.add(obj); // 自動創建表及字段
驗證表結構:
-
關閉開發者模式,進入后臺?
?
站點 > 控制面板 > 預覽路徑 > 數據庫 > Sqlite 表 > user
,可查看自動生成的表結構:
?二、查詢數據
Kooboo 系統內置多種查詢方式:
- 原生 SQL 查詢:通過?
k.DB.sqlite.query
?方法執行標準 SQL 查詢語句,這種方式借助 SQL 強大的查詢功能,可實現復雜的數據篩選、排序等操作,適用于對查詢結果有精細要求的場景。// 方法一:原生SQL查詢 var list = k.DB.sqlite.query("SELECT * FROM user"); // 從?user?表中查詢所有記錄
- 封裝方法查詢:
find
?和?findAll
?方法提供字段匹配查詢功能。能根據指定字段和匹配值快速查找記錄。這種封裝后的查詢方式簡單易用,適合簡單條件查詢場景。// 方法二:數據庫封裝查詢 var list = k.DB.sqlite.user.find("name =='老六'"); // 方法三:基于JSON對象查詢 // var list = k.DB.sqlite.user.findAll({phone : "10086"});
- 基于JSON對象查詢:通過?
find
?和?findAll
?方法,可以直接用 JSON 對象作為查詢條件,無需手動拼接 SQL。
三、基礎語法對比
方法 | 作用 | 示例代碼 |
---|---|---|
find | 返回?第一條匹配記錄 | k.DB.sqlite.user.find({name: "老六"}) |
findAll | 返回?所有匹配記錄 | k.DB.sqlite.user.findAll({phone: "10086"}) |
四、修改表結構
直接插入新字段即可,Kooboo 會自動擴展表:
// 新增 position 字段
var user = { name: "李四", position: "工程師" };
k.DB.sqlite.user.add(user);
k.DB.SaveChanges();
此外,Kooboo 還提供了?execute
?方法來執行 SQL 語句,如?k.DB.sqlite.execute("DELETE FROM Customer");
?可執行刪除操作,滿足了數據庫操作的多樣化需求。
?
總結
-
創建表:插入數據時自動完成,無需手動定義
-
查詢數據:
-
all()
?獲取全部數據 -
find("字段名", 值)
?精確匹配 -
query(SQL)
?執行原生語句
-
-
驗證結果:通過后臺管理界面實時查看數據
下一步學習建議:
掌握條件查詢運算符(如?GT
、LT
、CONTAINS
)和分頁查詢。