首页 > 其他分享 >gorm的使用

gorm的使用

时间:2023-06-08 13:45:10浏览次数:28  
标签:数据库 db gorm User 使用 GORM user

当涉及到数据库操作时,Golang 中的 GORM 是一个非常流行的 ORM(对象关系映射)库。它提供了简洁而强大的 API,使得数据库操作变得更加容易和高效。在本篇技术分享文章中,我们将探讨 GORM 的一些核心功能和用法。

  1. 安装和初始化
    首先,我们需要安装 GORM。在终端中运行以下命令:
go get -u gorm.io/gorm
go get -u gorm.io/driver/<your-database-driver>

其中 是你所使用的数据库驱动,例如 mysql、postgres 等。安装完成后,我们可以开始使用 GORM。

在代码中导入 GORM:

Copy code
import "gorm.io/gorm"

然后,创建一个数据库连接:

dsn := "<your-dsn>" // 数据库连接字符串
db, err := gorm.Open(<your-database-driver>, dsn)
if err != nil {
    // 处理错误
}
defer db.Close()
  1. 定义模型和数据表
    在 GORM 中,我们可以使用结构体来定义数据库表的模型。每个结构体字段对应表中的一个列。
type User struct {
    gorm.Model
    Name  string
    Email string
    Age   int
}

上述示例定义了一个名为 User 的模型,包含了一些常见的字段。gorm.Model 是 GORM 提供的内置模型,用于自动添加 ID、CreatedAt、UpdatedAt 和 DeletedAt 字段。

  1. 数据库迁移
    GORM 提供了数据库迁移的功能,可以根据模型定义自动创建和更新数据库表。

创建表格:

db.AutoMigrate(&User{})

上述代码会检查数据库中是否存在 users 表,如果不存在则会创建。

  1. CRUD 操作
    GORM 提供了丰富的方法来进行 CRUD 操作。

创建记录:

user := User{Name: "John", Email: "[email protected]", Age: 25}
db.Create(&user)

读取记录:

var user User
db.First(&user, 1) // 通过主键获取第一条记录

更新记录:

db.Model(&user).Update("Age", 30)

删除记录:

db.Delete(&user)
  1. 查询构建器
    GORM 提供了查询构建器,使得复杂的查询变得简单。
var users []User
db.Where("age > ?", 18).Find(&users)

上述代码会查询年龄大于 18 岁的所有用户。

作者:吕政超

标签:数据库,db,gorm,User,使用,GORM,user
From: https://www.cnblogs.com/DTCLOUD/p/17466227.html

相关文章

  • PowerDesigner使用教程(转)
    PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一。Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesigner则与其正好相反,它是以数据库建模起家,后来才发展为一款综合全面的Case工具。PowerDesigner主要分为7种建模文......
  • 使用ImportBeanDefinitionRegistrar处理自定义注解将类注册到容器中
    START两个自定义注解:@Documented@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Import(LogRegistry.class)public@interfaceEnableLog{StringbasePackage()default"";}该注解的作用是扫描指定的basePackage目录中使用了@Log注解的类,并将这......
  • 使用Docker Compose 部署 WordPress
    #1.定义项目,切换到该项目目录#Compose项目目录:可根据需要命名,是应用程序镜像的上下文环境,仅包含用于构建镜像的资源。[root@hecs-hqs-01~]#mkdirmy_wordpress&&cdmy_wordpress[root@hecs-hqs-01my_wordpress]##2.创建并编辑docker-compose.yml的compose文件来定义项......
  • pytest框架使用
    1.pytest框架1.1.引入常用单元测试框架介绍python:pytest,unittestjava:TestNG,Junitpytest主要作用:找到测试用例执行测试用例判断测试结果生成测试报告pytest默认的测试用例规则(可在pytest.ini中修改规则):模块名必须以test_开头或_test结尾测试类必须以Test开头,并......
  • 使用单例获取yml配置的接口List,来为过滤器设置白名单
    最近在涉及登录访问接口的问题,服务器被人给攻击了,考虑给接口加白名单,如果用注解的方式还要跑到接口上去加代码也不够灵活,那么如何使用过滤器来实现呢?让我们来用demo实现看看。第一步、首先新建一个demo项目jdk11新建一个springboot项目,配置pom.xml1<?xmlversion="1.0"e......
  • 使用GDB调试断点信息是gdb动态添加或取消的还是将断点烧录到elf文件的?断点信息是如何
    使用GDB调试断点信息是gdb动态添加或取消的还是将断点烧录到elf文件的?断点信息是如何加载进单片机的并进行加下来的调试运行的? from:GPT-4GDB(GNU调试器)是一个用于调试程序的强大工具,它可以让你设置断点、检查变量和内存、执行单步调试等。在单片机(微控制器)上使用GDB进行调试......
  • JMeter常用功能及使用方法详解
    JMeter被广泛应用于软件性能测试,是一个开源的、纯Java编写的测试工具,其中包括了很多强大的功能。以下将重点介绍JMeter常用功能及使用方法。一、JMeter压力测试1.什么是JMeter压力测试?JMeter压力测试就是模拟多种负载条件并分析不同条件下系统(例如网站)的性能表现的过程。2.怎么做JM......
  • 使用 ADB 命令为 Windows Subsystem Android(WSA)配置代理
    注意!以下命令需在命令提示符中执行,不要使用PowerShell,会有字符错误!设置代理:adbconnect127.0.0.1:58526&&adbshell"settingsputglobalhttp_proxy`iproutelistmatch0tableallscopeglobal|cut-F3`:7890"中间一大段会自动识别宿主机ip注意修改7890端口......
  • tampermonkey脚本使用
    看廖大网站的时候,有水友希望屏蔽部分不想看到的评论信息,正好油猴功能强大,支持用户自行编写脚本。用户屏蔽功能其实可以借助前端脚本实现,通过开发者工具调试可以看到教程页面是Ajax请求获取评论的,所以我们需要拦截请求......
  • 使用Laf云平台,两步将ChatGPT接入微信公众号
    使用Laf云平台,两步将ChatGPT接入微信公众号最近很火的ChatGPT可以说已经满大街可见了,到处都有各种各样的体验地址,有收费的也有免费的,总之是五花八门、花里胡哨。所以呢,最近我就在研究怎么才能方便快捷的体验到ChatGPT的强大功能,其中一个就是:把ChatGPT接入公众号。如下图(成果图):......