【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之间的关系

  1. sql为主,orm为辅
  2. orm主要目的是为了增加代码可维护性和开发效率

一定要学好:

  • group by
  • 子查询
  • having子句

二、gorm入门

github:https://github.com/go-gorm/gorm

官方文档:https://gorm.io/

建议直接去官方文档去学 因为它更详细 还支持中文 要啥有啥 我也就懒得往下写了 毕竟它已经说的很详细了

你可能感兴趣的:(golang,数据库)