SQL實戰篇,數據庫在Kooboo中的實際應用(一)

本文將結合實際操作與代碼示例,展示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);  // 自動創建表及字段


    驗證表結構

    1. 關閉開發者模式,進入后臺??

    2. 站點 > 控制面板 > 預覽路徑 > 數據庫 > 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)?執行原生語句

    • 驗證結果:通過后臺管理界面實時查看數據

    下一步學習建議
    掌握條件查詢運算符(如?GTLTCONTAINS)和分頁查詢。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/pingmian/76383.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76383.shtml
    英文地址,請注明出處:http://en.pswp.cn/pingmian/76383.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    克魔助手(Kemob)安裝與注冊完整教程 - Windows/macOS雙平臺指南

    iOS設備管理工具克魔助手便攜版使用全指南 前言:為什么需要專業的iOS管理工具 在iOS開發和設備管理過程中,開發者經常需要突破系統限制,實現更深層次的控制和調試。本文將詳細介紹一款實用的便攜式工具的使用方法,幫助開發者快速…

    搜索插入位置 -- 二分查找

    目錄 一&#xff1a;題目 二:算法原理 三&#xff1a;代碼分析 一&#xff1a;題目 題目鏈接&#xff1a;35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 二:算法原理 三&#xff1a;代碼分析 class Solution { public:int searchInsert(vector<int>&am…

    Apache Doris內存與超時參數配置詳解

    一、查詢任務內存限制調整 1. ?默認內存限制與問題定位 Apache Doris默認限制單個BE節點上的查詢任務內存使用不超過2GB&#xff08;即exec_mem_limit2147483648字節&#xff09;。當復雜查詢或大規模數據操作超過此限制時&#xff0c;會觸發Memory limit exceeded錯誤。通過…

    龍虎榜——20250411

    今天縮量&#xff0c;上方壓力依然在&#xff0c;外圍還在升級&#xff0c;企穩還需要時日。 2025年4月11日龍虎榜行業方向分析 一、核心主線方向 半導體與芯片&#xff08;國產替代加速&#xff09; ? 代表標的&#xff1a;圣邦股份&#xff08;模擬芯片&#xff09;、中電…

    若依前后端分離版本從mysql切換到postgresql數據庫

    一、修改依賴&#xff1a; 修改admin模塊pom.xml中的依賴,屏蔽或刪除mysql依賴&#xff0c;增加postgresql依賴。 <!-- Mysql驅動包 --> <!--<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> &l…

    自定義排序注意點

    這段 Java 代碼展示了兩種排序方式的用法&#xff0c;分別是&#xff1a; 對普通數組進行排序&#xff08;Integer[] nums&#xff09;對對象數組進行排序&#xff08;Student[] students&#xff09; 我來一步步給你講清楚&#xff1a; ? 第1部分&#xff1a;普通數組降序排…

    第十四屆藍橋杯大賽軟件賽省賽C/C++ 大學 A 組真題

    文章目錄 1 幸運數題目描述&#xff1a;答案&#xff1a;4430091 代碼&#xff1a; 2 有獎問答題目描述&#xff1a;重點&#xff1a;答案&#xff1a;8335366 代碼&#xff1a; 3 平方差題目描述&#xff1a;思路&#xff1a;數學找規律代碼&#xff1a; 4 更小的數題目描述&a…

    C++ 入門四:類與對象 —— 面向對象編程的核心基石

    一、類的定義 1. 類的基本形式 class 類名 { public: // 公有成員&#xff08;類內外均可訪問&#xff09;數據類型 數據成員; // 公有數據成員數據類型 成員函數(參數列表); // 公有成員函數聲明 protected: // 保護成員&#xff08;類內和派生類可訪問&…

    嵌入式---電機分類

    一、按電流類型分類&#xff08;最基礎分類&#xff09; 1. 直流電機&#xff08;DC Motor&#xff09; 工作原理&#xff1a;通過換向器&#xff08;有刷&#xff09;或電子換向&#xff08;無刷&#xff09;將直流電源轉換為交變磁場&#xff0c;驅動轉子旋轉。 核心特點&a…

    【python】并行編程模塊:threading / mutliprocess / parallel / Celery

    在并行編程中&#xff0c;Python 具有簡化實現的內置和外部模塊。 本書是基于Python3.X的。 Python的threading模塊 Python的threading模塊為模塊 _thread 提供了一個抽象層&#xff0c;它是一個較低級別的模塊。 它提供的功能可以幫助程序員完成基于線程開發并行系統的艱巨任…

    OpengGL教程(七)---攝像機

    本章參考官方教程&#xff1a;攝像機 本系列歷史文 OpengGL教程(一)—OpenGL環境的配置(GLFW3,GLAD) OpengGL教程(二)—渲染一個簡單的窗體 OpengGL教程(三)—使用VAO和VBO方式繪制三角形 OpengGL教程(四)—使用EBO方式繪制矩形 OpengGL教程(五)—紋理的應用 OpengGL教程(六)—…

    安卓手機怎樣開啟雙WiFi加速

    1. 小米/Redmi手機 路徑&#xff1a; 設置 → WLAN → 高級設置 → 雙WLAN加速 操作&#xff1a; 開啟功能后&#xff0c;可同時連接一個2.4GHz WiFi和一個5GHz WiFi&#xff08;或兩個不同路由器&#xff09;。 可選擇“智能選擇”或手動指定輔助網絡。 2. 華為/榮耀手機…

    什么是八步工作法?

    八步工作法&#xff0c;顧名思義&#xff0c;就是把一項工作拆分成八個步驟來完成。它的核心目的是讓工作變得更有條理&#xff0c;更高效&#xff0c;避免忙而無序&#xff0c;做到事事有著落&#xff0c;件件有結果。這個方法在很多企業和單位中都有應用&#xff0c;尤其適合…

    前端Node.js的包管理工具npm指令

    ?npm&#xff08;Node Package Manager&#xff09;是Node.js的包管理工具&#xff0c;主要用于安裝、更新、刪除和管理JavaScript包。以下是前端開發中常用的npm命令及其用途?&#xff1a; 基本命令 npm提供了一系列命令行工具&#xff0c;用于執行各種包管理操作。以下是一…

    掌握C語言文件操作:從理論到實戰指南

    文件操作是C語言編程中不可或缺的一部分&#xff0c;它使得程序能夠持久化存儲數據&#xff0c;并在需要時高效讀寫。本文將從基礎概念到實戰技巧&#xff0c;系統講解C語言文件操作的核心知識點&#xff0c;并結合代碼示例幫助讀者深入理解。 一. 為什么需要文件操作&#xf…

    Linux 線程:從零構建多線程應用:系統化解析線程API與底層設計邏輯

    線程 線程的概述 在之前&#xff0c;我們常把進程定義為 程序執行的實例&#xff0c;實際不然&#xff0c;進程實際上只是維護應用程序的各種資源&#xff0c;并不執行什么。真正執行具體任務的是線程。 那為什么之前直接執行a.out的時候&#xff0c;沒有這種感受呢&#xf…

    014_多線程

    多線程 多線程創建線程方式一&#xff1a;繼承Thread類方式二&#xff1a;實現Runable接口方式三&#xff1a;實現Callbale接口 Thread的常用方法線程安全線程同步方式一&#xff1a;同步代碼塊同步方法方式三&#xff1a;Lock鎖 線性池創建線程池處理Runnable任務處理Callable…

    機場跑道異物檢測數據集VOC+YOLO格式33793張31類別

    數據集分辨率都是300x300,都是貼近地面拍攝&#xff0c;具體看圖片 據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;33793 標注數量(xml文件…

    Spring Cloud 遠程調用

    4.OpenFeign的實現原理是什么&#xff1f; 在使用OpenFeign的時候&#xff0c;主要關心兩個注解&#xff0c;EnableFeignClients和FeignClient。整體的流程分為以下幾個部分&#xff1a; 啟用Feign代理&#xff0c;通過在啟動類上添加EnableFeignClients注解&#xff0c;開啟F…

    Unity中使用FMETP STREAM傳輸實時畫面

    一、客戶端&#xff08;發送端&#xff09; 總體思路&#xff1a;先把畫面編碼Encoder&#xff0c;再發送給服務端 新建場景&#xff0c;創建一個實體&#xff0c;名為FMnet&#xff0c;添加組件FMNetworkManager&#xff0c;將NetworkType設置為客戶端Client&#xff0c;設置…