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])
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值