【ORM框架】go语言ORM框架 - gorm快速入门
文章目录
- 前言
- 一、正确看待orm
- 1.什么是orm
- 2.常用的orm
- 3.orm的优缺点
- 4.如何正确看待orm和sql之间的关系
- 二、gorm入门
前言
Gorm 是 Golang 的一个 orm 框架。ORM 是通过实例对象的语法,完成关系型 数据库的操作,是"对象-关系映射"(Object/Relational Mapping) 的缩写。使用 ORM 框架可以让我们更方便的操作数据库。
Gorm官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Server
作者是中国人,中文文档齐全,对开发者友好,支持主流数据库。
一、正确看待orm
1.什么是orm
跟python的peewee一样的概念
peewee框架:https://blog.csdn.net/the_shy_faker/article/details/127570155
ORM全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录。
对于数据来说,最重要最常用的是表∶表中有列,orm就是将一张表映射成一个类,表中的列映射成类中的一个类。java .、 python,但是针对go语言而言,struct,就是列如何映射,是因为列可以映射成struct中的类型,int->int,但是有另一个问题?就是数据库中的列具备很好的描述性,但是struct有tag。执行sql,需要我们有足够的sql语句基础、需要我们懂得不同的数据的sql
2.常用的orm
个人而言,不用太去纠结应该选择哪一个orm框架,但是实际上你用熟悉了一个,其他的orm迁移成本很低,我们选个一个star数量最高的一定不会有错,这些差异也不会很大
sql语言远比orm重要的多
https://github.com/go-gorm/gorm
https://github.com/facebook/ent
https://github.com/jmoiron/sqlx
https://gitea.com/xorm/xorm/src/branch/master/README_CN.md
https://github.com/didi/gendry/blob/master/translation/zhcn/README.md
3.orm的优缺点
优点:
- 提高了开发效率。
- 屏蔽sql细节。可以自动对实体Entity对象与数据库中的Table进行字段与属性的映射;不用直接SQL编码
- 屏蔽各种数据库之间的差异
缺点:
- orm会牺牲程序的执行效率和会固定思维模式
- 太过依赖orm会导致sql理解不够
- 对于固定的orm依赖过重,导致切换到其他的orm代价高
4.如何正确看待orm和sql之间的关系
- sql为主,orm为辅
- orm主要目的是为了增加代码可维护性和开发效率
一定要学好:
- group by
- 子查询
- having子句
二、gorm入门
github:https://github.com/go-gorm/gorm
官方文档:https://gorm.io/
建议直接去官方文档去学 因为它更详细 还支持中文 要啥有啥 我也就懒得往下写了 毕竟它已经说的很详细了
【ORM框架】go语言ORM框架 - gorm快速入门相关推荐
- php yii2 api框架,Yii2框架制作RESTful风格的API快速入门教程
先给大家说下什么是REST restful REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Ro ...
- 【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门
► 相关链接: ① MobileIMSDK-Uniapp端的详细介绍 ② MobileIMSDK-Uniapp端的开发手册new(* 精编PDF版) 一.理论知识准备 您需要对Uniapp和Vue开发 ...
- 华为AI计算框架昇思MindSpore零基础快速入门 (上)
一.基础介绍 门槛最低的深度学习引导 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/463019160MindSpore入门实践 - 知乎 (zhihu.c ...
- JAVA框架——struts(一)struts快速入门,struts访问流程,struts配置文件详解,动态方法调用
一. Struts2框架概述 是一种基于MVC模式的轻量级web框架.本质是一个Servlet.作为控制器建立模型与视图的数据交互.Struts2以WebWord为核心,采用拦截器的机制处理客户的请求 ...
- neon 指令 c语言,Neon指令集优化快速入门教程
Neon指令集优化快速入门教程 Neon指令集优化快速入门教程 文章目录 1. Neon是什么? 2.Neon为什么速度快 3. Neon基础概念 4. Neon的C语言接口 C语言程序中集成Neon ...
- 简单比较python语言和c语言的异同-Python快速入门之与C语言异同
原标题:Python快速入门之与C语言异同 代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达 ...
- Go语言小程序开发快速入门——一、用Gin框架实现简单的信息获取
下面主要介绍如何用Go语言的Gin框架把信息通过接口传到小程序前端 1.准备 (1)注册一个微信小程序 (2)下载微信开发者工具 (3)下载Go语言编辑器,配置Go语言环境 2.新建一个小程序项目 在 ...
- php风格goweb框架,go语言 web框架比较
随着go语言在16年的爆发,各种开源web框架开始如雨后春笋一般的涌出,比较出名有beego,Martini,gin ,Macaron,Traffic,Revel, Goji等.本文笔者总结下目前go ...
最新文章
- 语义分割 | segnet 制作自己的数据,如何训练,如何测试,如何评价
- Spark PersistenceEngine持久化引擎与领导选举代理机制内核原理深入剖析-Spark商业环境实战...
- idea清理svn信息_IntelliJ IDEA SVN的账号修改 信息清除
- Java-IO-对接流
- 【Java】获取Java代码段运行毫秒数的策略
- 人生没有后悔药,云主机可以有“时光机”
- 计算机操作师初级理论知识试卷答案,[计算机操作员初级理论知识试卷1.doc
- 不用也要知道的几种算法(PHP版本)
- 如何直观的长时间统计Android应用的动态内存消耗
- Pod install 慢, pod update 慢, Cocoapods setup下载缓慢,手动解决方案
- ThreadLocal理解
- 计算机多媒体教室管理制度,新疆大学多媒体教室管理制度
- 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第八节课笔记
- 由于授权协议中一个错误,远程计算机中断了会话。请重新跟远程计算机连接;或者跟服务器管理员联系。
- 自控力读书笔记 第九章	 别读这章:“我不要”力量的局限性
- 200行Go代码实现自己的区块链——区块生成与网络通信
- 一个通证经济典型案例——移动广告矿机
- anyconnect免密码登录
- 推荐一款文件分享工具-文叔叔
- can口通信的软件测试,RT1052+8、CAN通信例程测试