第五节课:Database/SQL 与 GORM 实践|青训营笔记

99 阅读2分钟
  • 课前准备\

  • 理解 Database/SQL\

    • Database/SQL 的基本用法\

      • 使用driver+DSN初始化DB连接\
      • 执行一条SQL,通过rows获取返回的数据\
      • 处理完毕需要释放连接\
      • 数据、错误处理\
    • 设计原理\

      • 应用程序\
      • 操作接口\
      • database/sql\
      • 连接/操作接口\
      • 数据库\
      • db连接的几种类型\

        • 直接连接/conn\
        • 预编译/stmt\
        • 事务/tx\
      • 处理返回数据的几种方式\

        • exec/exec context->result\
        • query/query context->rows(columns)\
        • quert row/query row context->row(rows简化)\
    • 基础概念\
  • GORM 的使用简介\

    • 背景知识\

      • 设计原则\

        • api精简\
        • 测试优先\
        • 最小惊讶\
        • 灵活扩展\
        • 无依赖\
        • 可信赖\
      • 功能完善\

        • 关联:一对一、一对多、单表自关联、多态; Preload、 Joins 预加载、级联删除;关联模式;自定义关联表\
        • 事务:事务代码块、嵌套事务、Save Point\
        • 多数据库、读写分离、命名参数、Map、 子查询、分组条件、代码共享、SQL 表达式(查询、创建、更新)、自动选字段、查询优化器\
        • 字段权限、软删除、批量数据处理、Prepared Stmt、自定义类型、命名策略、虚拟字段、自动track时间、SQL Builder、Logger\
        • 代码生成、复合主键、Constraint、 Prometheus、 Auto Migration、真·跨数据库兼容...\
        • 多模式灵活自由扩展\
        • developer friendly\
    • GORM 的基本用法\

      • crud\
    • Model 定义\
    • 惯例约定\

      • 一切皆可配置\
    • 关联操作\

      • preload/joins预加载\
      • 级联删除\
  • GORM 的设计原理\

    • 原理\

      • 应用程序\
      • GORM\
      • 操作接口\
      • database/sql\
      • 连接/操作接口\
    • SQL 是怎么生成的\

      • sqlstatement\

        • select clause\
        • from clause\
        • where clause\
        • order by clause\
        • limit clause\
        • for clause\
      • gorm api方法添加clauses至gorm statement\
      • gorm finish方法执行gorm statement\
      • 自定义builder\
      • 扩展子句\
      • 选择子句\
    • 插件是怎么工作的\

      • 多租户\
      • 多数据库、读写分离\
      • 加解密、混沌工程...\
    • ConnPool 是什么\
    • Dialector\
  • GORM 最佳实践\

    • 数据序列化和sql表达式\

      • sql表达式更新创建\
      • sql表达式查询\
      • 数据序列化\
    • 批量数据操作\

      • 批量创建、查询\
      • 批量更新\
      • 批量数据加速操作\
    • 代码复用、分库分表、sharding\
    • 混沌工程、压测\
    • logger/trace\
    • migrator\

      • 数据库迁移管理\
      • 数据库迁移\
    • gen代码生成/raw sql\

      • gen\
      • raw sql\
    • 安全\