1.1笔记:quick start 需要对错误进行预处理
rows.close可能会出现错误,要对rows.close单独进行错误处理
1.2笔记:设计原理 应用程序——————database/sql————————————————数据库 操作接口 接口/数据库Driver 池化技术可以大幅提升性能,将费事的资源放到特定的池子里,维持最小最大连接树进行管理等等,使用连接池优化性能。
连接接口:
type Driver interface {
Open(name string) (Conn, error)
}
2.1笔记:GORM背景知识: 需要设计简洁、功能强大、自由扩展的全功能ORM(源于大佬在原有工具的嫌弃)
2.2基本用法 操作数据库:用于创建字段,批量创建数据(比用终端写mysql看起来就舒服很多) 读取数据库:可以对数据库进行数据的读取,(批量)更新,删除
2.3模型定义-惯例约定 会对比如说User进行模型定义,可以在后续构建数据结构时进行复用 约定优于配置,一切都可以配置。
2.4关联介绍 保存关联
db.Save(&User{
Name:
Languages:
})
方便管理数据,关联模式也支持批量操作
preload/Joins预加载 避免过多的操作,preload会触发另外的sql,一次把所有相关关联全取出来(性能不一定强) 都可以进行批量操作
级联删除 1.使用数据库约束(可能不允许) 2.Select实现级联删除
总结: 个人要学会总结发现并且解决问题。
3.GORM设计原理(助力企业级开发) GORM是在原有设计逻辑的基础上,在应用程序和sql之间增加了GORM的加入
3.1SQL生成 GORM statement里面有多个Chain method和一个finisher method 所有的Chain method都是约束条件,Finisher method是决定类型并且执行 GORM参考了mysql的生成,有利于接口的扩展
3.2插件工作原理 在finisher method以后,决定statement类型,执行Callbacks,最终生成sql并执行