栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

gorm mysql text

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

gorm mysql text

导入包

import (

_ "github.com/go-sql-driver/mysql"

"github.com/jinzhu/gorm"

)

连接mysql

db,err:=gorm.Open("mysql","account:pwd@tcp(host:port)/db?charset=utf8")

禁用复数形式

db.SingularTable(true)

为表名添加前缀

gorm.DefaultTableNameHandler= func(db *gorm.DB, defaultTableName string) string {

return "test_" +defaultTableName

}

设置打印日志

db.LogMode(true)

定义回调函数

例如

type Project struct {

ID int `gorm:"primary_key"`

Name string `gorm:"type:varchar(64);not null"`

Title string `gorm:"type:varchar(64);unique;not null"`

Runtime string `gorm:"type:varchar(64);"`

Type int `gorm:"default:0;"`

LastTime time.Time

Dingmachince string `gorm:"type:varchar(255);"`

Filename string `gorm:"type:varchar(255);"`

Ossaddress string `gorm:"size:512"`

UpdateTime time.Time

CreateTime time.Time

IsDelete int `gorm:"default:0;not null"`

Desc string `gorm:"type:varchar(255);"`

Codeinfo string `gorm:"type:longText"`

Ossfilename string `gorm:"type:varchar(64);"`

}

当创建、修改对象时CreateTime 和UpdateTime 自动更新

func (t *Project) AfterCreate( scope * gorm.Scope) {

fmt.Println("AfterCreate回调函数")

return

}

func (t *Project) BeforeCreate( scope * gorm.Scope) {

fmt.Println("BeforeCreate回调函数")

if !scope.HasError() {

now := gorm.NowFunc()

if createdAtField, ok := scope.FieldByName("CreateTime"); ok {

if createdAtField.IsBlank {

createdAtField.Set(now)

}

}

if updatedAtField, ok := scope.FieldByName("UpdateTime"); ok {

if updatedAtField.IsBlank {

updatedAtField.Set(now)

}

}

}

return

}

func (t *Project) AfterSave( scope * gorm.Scope) {

fmt.Println("AfterSave回调函数")

return

}

func (t *Project) BeforeSave( scope * gorm.Scope) {

fmt.Println("BeforeSave回调函数")

return

}

func (t *Project) BeforeUpdate( scope * gorm.Scope) {

fmt.Println("BeforeUpdate回调函数")

if _, ok := scope.Get("gorm:update_column"); !ok {

scope.SetColumn("UpdateTime", gorm.NowFunc())

}

return

}

func (t *Project) AfterUpdate( scope * gorm.Scope) {

fmt.Println("AfterUpdate回调函数")

}

func createNew(db *gorm.DB) {

title:=GetRandomString(6)

filename:=GetRandomString(5)+".py"

ding:=GetRandomString(10)

name:=GetRandomString(6)

var project Project

project=Project{Name:name,Title:title,Runtime:"11 * * * *",Dingmachince:ding,Filename:filename}

//a:=db.NewRecord(project)

//fmt.Println(a)

db.Create(&project)

}

创建表时,添加后缀

db.Set("grom:table_options","ENGINE=InnoDB")

添加一个对象和更新一个对象

自定义回调函数

db.Callback().Create().Register("gorm:before_create1", beforeCreate1)

设置最大连接数和最大闲置数

默认0表示不限制

db.DB().SetMaxIdleConns(2000)

db.DB().SetMaxOpenConns(1000)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号