go web中使用orm框架,类比java中的Hiberante

2022/1/23 14:04:51

本文主要是介绍go web中使用orm框架,类比java中的Hiberante,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# Gorm被其开发者声称为最棒的ORM,他们所言非虚

Gorm的功能非常强大,他允许程序员定义关系,实施数据迁移、串联多个查询以及执行其它很多高级的操作。除此之外,Gorm还能设置回调函数,这些回调函数在特定的数据时间发生时被执行。

下面的代码是我实现一个使用gorm的例子:

package main

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jinzhu/gorm"
	"time"
)


type Post struct { //带结构标签,反引号来包围字符串
	Id      int
	Content string
	Author string `sql:"not null"`
	Comment []Comment
	CreatedAt time.Time
}

type Comment struct {
	Id int
	Content string
	Author string `sql:"not null"`
	PostId int  `sql:"index"`
	CreatedAt time.Time
}


var Dbs *gorm.DB

func init() {
	var err error
	Dbs,err = gorm.Open("mysql","用户名:密码@/数据库名?charset=utf8&parseTime=True&loc=Local")
	if err != nil {
		panic(err)
	}
	Dbs.AutoMigrate(&Post{},&Comment{})
}

func main() {

	post := Post{
		Content: "你好,中国",
		Author: "振彪",
	}
	fmt.Println(post)
	Dbs.Create(&post)
	comment := Comment{Content: "写的真好,非常不错",Author: "小白白"} //填加一条评论
	Dbs.Model(&post).Association("Comment").Append(&comment)

	var readPost Post
	Dbs.Where("author = ?","万里,明月").First(&readPost)
	var comments []Comment
	Dbs.Model(&readPost).Related(&comments)
	fmt.Println(comments[0])
}




这篇关于go web中使用orm框架,类比java中的Hiberante的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程