Go语言学习笔记—gorm(一)

这篇博客介绍了Gorm,一个强大的Golang ORM库,包括其概述、主要特性、模型声明、以及如何连接到MySQL数据库。内容涵盖了ORM的基本概念,Gorm的安装、快速入门,以及模型定义、字段权限控制和时间追踪等高级选项。
摘要由CSDN通过智能技术生成


一 gorm概述

1.1 ORM简介

对象关系映射(Object-Relationl Mapping,简称ORM)模式是一种为了解决面向对象和关系数据库(如mysql数据库)存在的互相不匹配的现象的技术。简单来说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

1.2 官方文档

https://gorm.io/zh_CN/docs/

1.3 gorm特性

  • 全功能 ORM
  • 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
  • Create,Save,Update,Delete,Find 中钩子方法
  • 支持 PreloadJoins 的预加载
  • 事务,嵌套事务,Save Point,Rollback To Saved Point
  • Context、预编译模式、DryRun 模式
  • 批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
  • SQL 构建器,Upsert,数据库锁,Optimizer/Index/Comment Hint,命名参数,子查询
  • 复合主键,索引,约束
  • Auto Migration
  • 自定义 Logger
  • 灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus…
  • 每个特性都经过了测试的重重考验
  • 开发者友好

1.4 安装

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

1.5 快速入门

package main

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

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

func main() {
   
	dsn := "root:960690@tcp(127.0.0.1:3306)/golang_db??charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
   })
	if err != nil {
   
		panic("failed to connect database")
	}

	// 创建表
	db.AutoMigrate(&Product{
   })

	// 插入数据
	db.Create(&Product{
   Code: "666", Price: 100})

	// 查询数据
	var product Product
	db.First(&product, 1)               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值