使用 GORM(Go 的 ORM 库)连接数据库,并实现增删改查操作| 青训营

114 阅读3分钟

gorm简介

什么是gorm?

gorm是一个强大的Go编程语言中的ORM(对象关系映射)库。ORM是一种技术,它将数据库表中的数据映射到面向对象的模型中,从而简化了数据库操作。

gorm的特点

gorm具有许多令人称赞的特点,使其成为Go开发者的首选ORM库之一。

1. 简单易用

gorm提供了简洁而直观的API,使得操作数据库变得非常容易。无论是创建、读取、更新还是删除数据,都可以通过简单的方法调用实现。

2. 支持多种数据库

gorm支持多种常见的数据库系统,包括MySQL、PostgreSQL、SQLite等。这使得开发者可以在不同的项目中使用不同的数据库系统,而无需更改代码。

3. 自动迁移

gorm具有强大的自动迁移功能,可以根据定义的模型自动创建、修改数据库表结构。这简化了数据库结构的管理,减少了手动处理数据库迁移的工作量。

4. 事务支持

gorm支持事务操作,保证了数据库操作的原子性和一致性。在复杂的业务逻辑中,事务可以确保一系列操作要么全部成功,要么全部回滚,避免了数据不一致的问题。

5. 强大的查询功能

gorm提供了丰富的查询功能,可以根据条件过滤数据、排序结果、限制返回的记录数等。开发者可以轻松地编写复杂的查询语句,满足各种业务需求。 ————————————————

版权声明:本文为CSDN博主「晴天码字」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/all_about_W…

ORM 框架 Gorm 初体验

通过阅读 gorm.cn/docs/#Insta… 尝试运行 Gorm 的示例代码

Install

go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite

Quick Start


package main

import (
  "gorm.io/gorm"
  "gorm.io/driver/sqlite"
)

定义gorm model

type Product struct {
  gorm.Model
  Code  string
  Price uint
}

连接数据库

func main() {
  db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
  if err != nil {
    panic("failed to connect database")
  }

创建表

在定义好数据模型之后,需要通过GORM来创建数据库表。可以使用AutoMigrate方法来创建表:

  // Migrate the schema
  db.AutoMigrate(&Product{})

这里传递的参数是Product类型的指针,表示要创建Product表。

创建数据


  // Create
  db.Create(&Product{Code: "D42", Price: 100})

支持创建1条或多条数据,创建1条时是一个对象,创建多条时是一个切片

查询数据

  // Read
  var product Product
  db.First(&product, 1) // find product with integer primary key
  db.First(&product, "code = ?", "D42") // find product with code D42

更新数据

可以使用Model方法定位要更新的记录,并通过Update方法更新:

  // Update - update product's price to 200
  db.Model(&product).Update("Price", 200)
  // Update - update multiple fields
  db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // non-zero fields
  db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})

删除数据

  // Delete - delete product
  db.Delete(&product, 1)
}

Gorm的约定(默认)

Gorm使用名为ID的字段作为主键

使用结构体的蛇形复数作为表名

字段名的蛇形作为列名

使用CreatedAt、UpdatedAt字段作为创建、更新时间