【GoCN酷Go推荐】简单强大ORM框架entgo

本文介绍了Go的ORM框架entgo,它是一个简单强大的实体框架,适用于构建大规模数据模型。通过定义Schema和实体关系,可以便捷地进行数据库操作和图遍历。文章涵盖创建Schema、生成代码、实体操作以及Edges的使用。entgo通过自动生成的静态类型代码,简化了数据库查询。此外,还提供了更多示例和文档链接供深入学习。
摘要由CSDN通过智能技术生成

简介

ent 是一个简单而又强大的Go实体框架,便于构建和使用大型数据模型时能够遵循以下原则:

  • 简单地使用数据库结构作为图结构。

  • 使用Go代码定义结构。

  • 基于代码生成的静态类型。

  • 容易地进行数据库查询和图遍历。

  • 容易地使用Go模板扩展和自定义。

应用场景 

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

核心概念 

Schema:描述一个实体的定义以及他与其他实体的关系

  Edges:实体与实体之间的关系称为edge

如何使用

安装

go get entgo.io/ent/cmd/ent
创建Schema
ent init --target internal/ent/schema User

运行之后会在internal/ent/schema目录下生成一个user.go文件,并进行编辑:

package schema

import (
 "entgo.io/ent"
 "entgo.io/ent/schema/edge"
 "entgo.io/ent/schema/field"
)

// User holds the schema definition for the User entity.
type User struct {
 ent.Schema
}

// Fields of the User.
func (User) Fields() []ent.Field {
  return []ent.Field{
    // 年龄是自然数
    field.Int("age").Positive(),
    field.String("name").Default("unknown"),
  }
}

// Edges of the User.
func (User) Edges() []ent.Edge {
 return []ent.Edge{
    
  }
}
生成代码
ent generate ./internal/ent/schema

运行之后会自动创建以下文件:

ent
├── client.go
├── config.go
├── context.go
├── ent.go
├── migrate
│   ├── migrate.go
│   └── schema.go
├── predicate
│   └── predicate.go
├── schema
│   └── user.go
├── tx.go
├── user
│   ├── user.go
│   └── where.go
├── user.go
├── user_create.go
├── user_delete.go
├── user_query.go
└── user_update.go
创建实体
package main

import (
    "context"
    "log"

    "<project>/ent"

    _ "github.com/mattn/go-sqlite3"
)

func main() {
    client, err := ent.Open(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值