当前位置: 首页 > news >正文

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)和分页查询。

    相关文章:

  • 《Vue Router实战教程》11.匹配当前路由的链接
  • 数据中台、BI业务访谈(三):如何选择合适的访谈对象
  • leetcode0155. 最小栈-medium
  • CRM软件介绍与10大主流产品选型指南
  • Umi Max 和 Ant Design Pro 的区别
  • [Windows] OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPS_Word联动)
  • 深入浅出:Linux Shell 中的条件判断与空变量检查
  • 网页布局思路
  • 【Django】教程-15-注册页面
  • [Effective C++]条款30:透彻了解inlining的里里外外
  • 如何通过简单步骤保护您的网站安全
  • 【Dart语言】七、类修饰符
  • 5️⃣ Coze+AI应用基础教学(2025年全新版本)
  • LLM之Agent(十六)| MCP已“过时”?Google近期推出Agent2Agent 协议 (A2A)
  • 学校安全用电解决电安全隐患-充满活力的校园享受科技进步的便利
  • LangGraph 架构详解
  • 计算机组成原理——CPU与存储器连接例题
  • UML-银行取款序列图
  • 《解锁分布式软总线:构建智能设备统一管理平台》
  • Python装饰器(Decorator)详解
  • 公司的服务器能建设网站吗/黄金网站软件免费
  • 东莞疫情感染人数/google移动服务应用优化
  • 网站设计怎么做链接/图片外链生成工具在线
  • 大型网站开发方案/seo推广代理
  • 公司备案的网站被别的公司盗用/注册网站免费注册
  • 网站网站建设专业/网站平台做推广