Golang ORM ent

本文介绍了Golang的ORM库ent,它是一个简单且强大的实体框架。通过定义Go代码来构建数据库结构,实现增删改查及多表操作。主要概念包括Schema和Edges,适用于处理复杂关系。使用步骤包括安装、生成代码、创建实体以及进行关联操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ent 是一个简单而又强大的Go实体框架

  • 简单地使用数据库结构作为图结构。
  • 使用Go代码定义结构
  • 基于代码生成的静态类型
  • 容易地进行数据库查询和图遍历
  • 容易地使用Go模板扩展和自定义

应用场景

  • ent非常适合处理各种复杂的关系,定义好实体和实体之间的关系,就可以快速得到各种想要的数据

核心概念

  • Schema: 描述一个实体的定义以及他与其他实体的关系
  • Edges:实体与实体之间的关系称为 ===>edge

使用步骤

  • 安装
go get entgo.io/ent/cmd/ent
  • 创建Schema (在当前项目的终端运行以下命令)
ent init --target internal/ent/schema User

运行之后会在internal/ent/schema目录下生成一个user.go文件
在这里插入图片描述

  • 编辑 user.go 文件,如图所示
    在这里插入图片描述
  • 生成代码 (在当前项目终端执行命令 )
ent generate ./internal/ent/schema

运行之后会自动创建以下文件:
在这里插入图片描述

  • 创建实体
    在这里插入图片描述

增、删、改、查

  • 新增
    在这里插入图片描述
  • 修改
    在这里插入图片描述
  • 查询
    在这里插入图片描述
  • 删除
    在这里插入图片描述

关联操作 (多表操作) ===> 即: 关系处理

  • ent 提供了图查询的能力,实际上在关系数据库中的表现就是 relation

  • 建立一个新的实体 CarUser 有多个 CarCar 属于某个 User

  • 在当前项目终端执行

ent init --target internal/ent/schema Car Group

效果如下
在这里插入图片描述

  • 编辑Car 实体 (添加字段)
    在这里插入图片描述
  • 编辑 Group 实体 (添加字段)
    在这里插入图片描述
  • 创建 One To Many 的关系
一个用户拥有多辆汽车,但是车只能拥有一个所有者
User ===> Car  (One  ==> Many)

Car  ===> User (Many ==> One)
  • User Schema添加 Car 这条边
    在这里插入图片描述
  • 在当前项目的终端执行命令
ent generate ./internal/ent/schema
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值