当前位置: 首页 > news >正文

golang中gorm使用

前言

记录下go语言操作mysql数据库,选用gorm,gorm是一个流行的对象关系映射(ORM)库,用于简化与数据库的交互。


接入步骤

  1. 安装gorm:首先,你需要使用Go模块来安装gorm。在终端中运行以下命令:

    go get -u gorm.io/gorm
    
  2. 选择数据库驱动:gorm本身是一个抽象层,需要使用特定数据库的驱动程序。选择适合你数据库的驱动并安装它。例如,如果你使用MySQL,可以运行:

    go get -u gorm.io/driver/mysql
    

    如果使用其他数据库,选择对应的驱动。

  3. 导入gorm和数据库驱动:在go代码中导入gorm和所选的数据库驱动。

    package mainimport ("gorm.io/gorm""gorm.io/driver/mysql"
    )
    
  4. 连接数据库:使用gorm的Open函数连接到数据库。在你的代码中设置数据库连接字符串。

    dsn := "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {panic("Failed to connect to database")
    }
    
  5. 定义模型:创建与数据库表对应的模型结构体。

    type User struct {gorm.ModelUsername stringEmail    string
    }
    

    在这个例子中,User模型包含IDCreatedAtUpdatedAtDeletedAt等gorm提供的标准模型字段。

  6. 迁移数据库:使用gorm的AutoMigrate方法创建表格。这会确保数据库中有你定义的模型对应的表格。

    err = db.AutoMigrate(&User{})
    if err != nil {panic("Failed to migrate database")
    }
    
  7. 使用gorm进行CRUD操作:现在你可以使用gorm进行数据库操作,例如创建、查询、更新和删除记录。

    // 创建记录
    user := User{Username: "john_doe", Email: "john@example.com"}
    db.Create(&user)// 查询记录
    var foundUser User
    db.First(&foundUser, "username = ?", "john_doe")// 更新记录
    db.Model(&foundUser).Update("Email", "new_email@example.com")// 删除记录
    db.Delete(&foundUser)
    
  8. 项目中可以参考下面代码:在model包中使用全局的db变量即可进行mysql操作

    package modelimport ("fmt""log""time""gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/schema"
    )// 创建全局数据库连接对象
    var db *gorm.DB// 模型/数据库连接对象 初始化
    func init() {var (err                          errordbName, user, password, host string)dbName = "" //数据库名称user = "" //用户名password = "" //密码host = "" //连接地址db, err = gorm.Open(mysql.Open(fmt.Sprintf("%s:%s@tcp(%s)/%s?	charset=utf8&parseTime=True&loc=Local",user,password,host,dbName)), &gorm.Config{NamingStrategy: schema.NamingStrategy{SingularTable: true,}})if err != nil {log.Println(err)}sqlDB, err := db.DB()if err != nil {log.Println(err)}sqlDB.SetMaxIdleConns(10)sqlDB.SetMaxOpenConns(100)sqlDB.SetConnMaxLifetime(time.Hour)
    }

这是一个基本的gorm集成和使用示例。根据你的实际需求,可能需要更复杂的查询、关联等操作,gorm提供了强大的功能来满足这些需求。可以查阅gorm文档以获取更详细的信息。

http://www.lryc.cn/news/276881.html

相关文章:

  • centoss7安装mysql详细教程
  • SpringBoot-拓展
  • 用于查询性能预测的计划结构深度神经网络模型--大数据计算基础大作业
  • MySQL5.7用于控制副本服务器的 SQL 语句
  • stable diffusion 人物高级提示词(四)朝向、画面范围、远近、焦距、机位、拍摄角度
  • C#.Net学习笔记——设计模式六大原则
  • go 修改postgresql的配置参数
  • 解决word图片格式错乱、回车图片不跟着换行的问题
  • 密码学(二)
  • mysql进阶-视图
  • 力扣-34. 在排序数组中查找元素的第一个和最后一个位置
  • Cesium笔记 初始化 使用Vue-Cesium 组件
  • QTday2作业
  • scVI与MultiVI
  • java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计
  • 2、UML类图
  • 2023 年度合辑 | 出海大年的全球化产品洞察和服务动向
  • python 基础笔记
  • [原创][R语言]股票分析实战[8]:因子与subset的关系
  • uniapp使用tcp和udp的区别和例子
  • 静态网页设计——个人图书馆(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)
  • APP出海需知——Admob广告变现竞价策略
  • 微服务实战系列之API加密
  • android apk文件的签名问题
  • ATTCK视角下的信息收集:主机发现
  • Redis 主从、哨兵和分片集群简单介绍
  • 群晖NAS+DMS7.0以上版本+无docker机型安装zerotier
  • Pinia持久化存储插件 pinia-plugin-persist
  • 链家JAVA笔试题
  • 当试图回复传入消息时,消息应用程序会闪烁