搭建Go语言的ORM框架Gorm的具体步骤(从Java到go)

目录
  • 【提问】
  • 【解答】
    • 1、检查Go的安装
    • 2、安装Gorm
    • 3、安装对应数据库的驱动
    • 4、编写「数据库连接」代码
    • 5、编写「数据Model」代码
    • 6、编写「数据查询」代码

【提问】

如何使用Goland软件,搭建一个ORM框架GORM?

【解答】

具体步骤如下:

1、检查Go的安装

在任意目录执行如下命令:

go version

若有如下返回,则安装成功;如果报异常,则重新安装golang

go version go1.19.1 darwin/arm64

2、安装Gorm

在任意目录执行如下命令安装grom:

go get -u gorm.io/gorm

3、安装对应数据库的驱动

根据你的数据库,在任意目录执行如下命令安装驱动:

//mysql
go get -u gorm.io/driver/mysql
//sqlite
go get -u gorm.io/driver/sqlite
//sqlserver
go get -u gorm.io/driver/sqlserver
//clickhouse
go get -u gorm.io/driver/clickhouse

4、编写「数据库连接」代码

这里以连接mysql为例,在工程中创建用于数据库连接的go文件,其中dsn中内容需要根据自己数据库的信息进行替换,如下:

package db

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)
var DB *gorm.DB

func InitGormDB() (err error) {
	dsn := "user:pwd@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		fmt.Printf("数据库连接失败:%v\n", err)
	} else {
		fmt.Printf("数据库连接成功\n")
		DB = db
	}
	return err
}

同时在main.go中增加对其的调用,在服务启动时就进行数据库连接:

package main

import (
	"fullstars/src/common/db"
)

func main() {

	db.InitGormDB()

}

启动服务后,可以看到连接成功的日志:

5、编写「数据Model」代码

数据库连接后,我们就对这个数据库进行一些表映射和简单查询操作。
首先,看一下我们需要操作的数据库表:

CREATE TABLE `config`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型',
  `key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `modifytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleteflag` tinyint(3) NOT NULL DEFAULT 0 COMMENT '逻辑删除标识',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

然后在工程中,新建Model文件:configModel.go,如下:

type Config struct {
	ID         int
	TYPE       string
	KEY        string
	VALUE      string
	CREATETIME time.Time
	MODIFYTIME time.Time
	DELETEFLAG int
}

func (Config) TableName() string {
	return "config"
}

需要说明的,gorm中的Model应与数据表一一对应,gorm会进行自动转换映射。

6、编写「数据查询」代码

在工程中,新建文件:configService.go,用于操作数据库和逻辑处理,如下:
其中「.Debug()」是为了在日志中打印Gorm真实拿去数据库执行的sql,方便我们查看和核对。

package config

import (
	"fullstars/src/common/db"
)

func ConfigService() {
	var configs []Config
	db.DB.Debug().Find(&configs)

	var config Config
	db.DB.Debug().Where("id = ?", 2).Find(&config)
}

同样在main.go中增加对其的调用:

package main

import (
	"fullstars/src/common/db"
)

func main() {
	db.InitGormDB()
	config.ConfigService()
}

调试启动后,我们可以看一下变量的结果,数据已经被查询出来了:

到此这篇关于搭建Go语言的ORM框架Gorm的具体步骤(从Java到go)的文章就介绍到这了,更多相关go orm框架内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • golang常用库之操作数据库的orm框架-gorm基本使用详解

    golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:字段映射-模型定义 gorm中通常用struct来映射字段. gorm教程中叫模型定义 比如我们定义一个模型Model: type User struct { gorm.Model UserId int64 `gorm:"index"` //设置一个普通的索引,没有设置索引名,gorm会自动命名 Birth

  • MongoDB orm框架的注意事项及简单使用

    目录 Ⅰ. 简介 Ⅱ. 注意事项 Ⅲ. 使用方法 Ⅳ. 教程 首先spring自带了mongodb的orm,spring data mongodb,但是这个框架非常难用,最令人抓狂的是每个文档都要带一个 _class 字段,因为这个是string的,所以占用不少空间,而且去除也比较麻烦.故而使用 zfoo orm 框架 Ⅰ. 简介 基于MongoDB的orm框架,提供POJO对象和MongoDB数据库之间的映射 Ⅱ. 注意事项 POJO对象的属性必须提供get和set方法,否则无法映射 不支持泛

  • golang gorm框架数据库的连接操作示例

    目录 1. 连接数据库 1.1 MySQL 1.2 PostgreSQL 1.3 Sqlite3 1.4 不支持的数据库 2. 迁移 2.1. 自动迁移 2.2. 检查表是否存在 2.3. 创建表 2.4. 删除表 2.5. 修改列 2.6. 删除列 2.7. 添加外键 2.8. 索引 1. 连接数据库 要连接到数据库首先要导入驱动程序.例如 import _ "github.com/go-sql-driver/mysql" 为了方便记住导入路径,GORM包装了一些驱动. import

  • go语言 xorm框架 postgresql 的用法及详细注解

    xorm用于在golang中链接数据库,并完成增删改差操作,不管是orm还是raw方式都十分的新颖简单. sql语句 postgresql pgadmin /*表结构*/ CREATE TABLE public.user ( id serial primary key, name varchar(20) ); ALTER TABLE public.user ADD COLUMN created timestamp default now(); ALTER TABLE public.user AD

  • go xorm框架的使用

    一.创建数据库连接 xorm支持单引擎和多引擎,多引擎的场景对于初学者来说,没有必要考虑,所以我们主要学习的是单引擎的数据库连接,为了方便检查SQL,需要启用打印功能,默认不开启 var engine *xorm.Engine func main() { var err error engine, err = xorm.NewEngine("mysql", "root:123456@tcp(127.0.0.1:3306)/myschool?charset=utf8"

  • 搭建Go语言的ORM框架Gorm的具体步骤(从Java到go)

    目录 [提问] [解答] 1.检查Go的安装 2.安装Gorm 3.安装对应数据库的驱动 4.编写「数据库连接」代码 5.编写「数据Model」代码 6.编写「数据查询」代码 [提问] 如何使用Goland软件,搭建一个ORM框架GORM? [解答] 具体步骤如下: 1.检查Go的安装 在任意目录执行如下命令: go version 若有如下返回,则安装成功:如果报异常,则重新安装golang go version go1.19.1 darwin/arm64 2.安装Gorm 在任意目录执行如下

  • Hibernate 与 Mybatis 的共存问题,打破你的认知!(两个ORM框架)

    很长一段时间,网上有很多关于Hibernate与Mybatis孰优孰劣的争论,两个阵营的人谁也不能说服谁,每个人的理由都很有道理. 今天,我分享的主题是:在一个项目中同时使用Hibernate和Mybatis两个ORM框架. 作为一个开发者,没有必要花费过多的时间去证明技术无用论,当你开始指责某个框架垃圾,另外一个框架最好时,隐性的暴露出你对某个框架没有深入的研究,无知的指责对于技术的提升没有任何的帮助. 框架本身没有对错一说,只有适合和更适合项目的选择.任何框架都有自身的能力范围,就拿Hibe

  • 持久层ORM框架Hibernate框架的使用及搭建方式

    目录 前言 一.Hibernate的优点? 二.Hibernate的缺点 三.搭建Hibernate项目架构 四.Hibernate核心接口的介绍 五.封装Hibernate的工具类 六.常用的CRUD操作 七.主键生成机制 八.Hibernate的类型 总结 前言 hibernate的概念: hibernate是一个ormapping框架(ORM框架,全自动ORM框架) hibernate是一个数据库的操作框架即持久层框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行

  • SpringBoot构建ORM框架的方法步骤

    目录 1.增加依赖 2.数据库实体模型 3.增加Mapper 4.@Mapper或者@MapperScan 5.配置连接 目前常用的ORM框架有 Mybatis(batis).MybatisPlus,Hibernate.Jpa等几个框架,今天就简单介绍一下搭建Mybatisplus框架的流程. 1.增加依赖 <dependencies>         <!--        第一步:选择ORM框架,使用springboot整合mybatis-plus依赖包-->        

  • Python练习之ORM框架

    目录 一.Python语言中有哪些常用的ORM框架以及它们的区别 二.使用SQLObject框架操作MySQL数据库 1. 创建表 2. 插入数据 3. 修改数据 4. 查询数据 三.补充总结 目的: 了解常用的ORM框架: 使用SQLObject框架操作MySQL数据库. 面试题: 在Python语言中有哪些常用的ORM框架,它们有什么区别? 如何使用SQLObject框架操作MySQL数据库? 一.Python语言中有哪些常用的ORM框架以及它们的区别 在Python语言中主要有以下两个常用

  • Redis官方ORM框架比RedisTemplate更优雅

    目录 RedisOM简介 JDK 11安装 使用 总结 RedisOM简介 之前在SpringBoot项目中,我一直使用RedisTemplate来操作Redis中的数据,这也是Spring官方支持的方式.对比Spring Data对MongoDB和ES的支持,这种使用Template的方式确实不够优雅!最近发现Redis官方新推出了Redis的专属ORM框架RedisOM,用起来够优雅,推荐给大家! SpringBoot实战电商项目mall(50k+star)地址:github.com/mac

  • 基于Java ORM框架的使用详解

    ORM框架不是一个新话题,它已经流传了很多年.它的优点在于提供了概念性的.易于理解的数据模型,将数据库中的表和内存中的对象建立了很好的映射关系.我们在这里主要关注Java中常用的两个ORM框架:Hibernate和iBatis.下面来介绍这两个框架简单的使用方法,如果将来有时间,我会深入的写一些更有意思的相关文章.HibernateHibernate是一个持久化框架和ORM框架,持久化和ORM是两个有区别的概念,持久化注重对象的存储方法是否随着程序的退出而消亡,ORM关注的是如何在数据库表和内存

  • Django ORM框架的定时任务如何使用详解

    前言 大家在Django项目开发过程中,是不是也经常遇到这样的场景:需要实现一个定时任务,但又不想脱离Django环境独立运行,如:还需要使用Django的ORM框架操作Models类.日志框架.复用已有配置/方法等等. 大部分同学,初次接触时首先想到的就是使用第三方插件,如:django-celery,django-crontab等等,我也不例外,但实际使用过程,总有诸多不爽,要么感觉大材小用,要么功能支持不完整,要么使用很繁琐... 多次尝试摸索后,发现Django已经帮我们实现了该功能,使

  • 搭建自己的PHP MVC框架详解

    本文详细讲述了搭建自己的PHP MVC框架的方法.分享给大家供大家参考,具体如下: 前言 说到写PHP的MVC框架,大家想到的第一个词--"造轮子",是的,一个还没有深厚功力的程序员,写出的PHP框架肯定不如那些出自大神们之手.经过时间和各种项目考验的框架.但我还是准备并且这么做了,主要是因为: 认为有关PHP的方方面面都了解了,但自己学习PHP的时间还短,基础并不扎实,很多常用函数的参数还偶尔要查手册,而且对于PHP的一些较新的特性如命名空间.反射等只是简单的看过,并没有能实际应用过

随机推荐