【ORM框架】go语言ORM框架 - gorm快速入门


前言

Gorm 是 Golang 的一个 orm 框架。ORM 是通过实例对象的语法,完成关系型 数据库的操作,是"对象-关系映射"(Object/Relational Mapping) 的缩写。使用 ORM 框架可以让我们更方便的操作数据库。

Gorm官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Server


一、正确看待orm

1.什么是orm

跟python的peewee一样的概念

peewee框架:

ORM全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录。 对于数据来说,最重要最常用的是表∶表中有列,orm就是将一张表映射成一个类,表中的列映射成类中的一个类。java .、 python,但是针对go语言而言,struct,就是列如何映射,是因为列可以映射成struct中的类型,int->int,但是有另一个问题?就是数据库中的列具备很好的描述性,但是struct有tag。执行sql,需要我们有足够的sql语句基础、需要我们懂得不同的数据的sql

2.常用的orm

个人而言,不用太去纠结应该选择哪一个orm框架,但是实际上你用熟悉了一个,其他的orm迁移成本很低,我们选个一个star数量最高的一定不会有错,这些差异也不会很大 sql语言远比orm重要的多

3.orm的优缺点

优点:

    提高了开发效率。 屏蔽sql细节。可以自动对实体Entity对象与数据库中的Table进行字段与属性的映射;不用直接SQL编码 屏蔽各种数据库之间的差异

缺点:

    orm会牺牲程序的执行效率和会固定思维模式 太过依赖orm会导致sql理解不够 对于固定的orm依赖过重,导致切换到其他的orm代价高

4.如何正确看待orm和sql之间的关系

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

一定要学好:

    group by 子查询 having子句

二、gorm入门

github:
官方文档:

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

经验分享 程序员 微信小程序 职场和发展