2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > go : 使用gorm创建数据库记录

go : 使用gorm创建数据库记录

时间:2022-07-28 06:03:31

相关推荐

go : 使用gorm创建数据库记录

不要因为没有掌声而放弃梦想,你需要的是坚持而不是观众!!!

代码已放在:/hjx_RuGuoYunZhiDao/strom-huang-go

可参照文档:/docs/gorm/v2/create/9732#e9dfd9

1、 引入gorm

import ("gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/logger")

2、添加一个model

type TUser struct {ID uint `gorm:"primaryKey"`NamestringPassword stringPhonestring `gorm:"phone"`NickName string `gorm:"nick_name"`CreatedAt time.Time `gorm:"column:created_at;type:datetime"`UpdatedAt time.Time `gorm:"column:updated_at;type:datetime"`DeletedAt time.Time `gorm:"column:deleted_at;type:datetime"`}

3、链接数据库

dsn := "root:root@tcp(localhost:3306)/go_test?charset=utf8mb4&parseTime=True&loc=Local"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: newLogger,})

4、创建数据

//普通创建user := TUser{Name: "test", Password: "123", NickName: "hello", Phone: "123", CreatedAt: time.Now()}result := db.Create(&user) // 通过数据的指针来创建fmt.Println(result.RowsAffected)//创建记录并更新给出的字段db.Select("name", "password", "phone", "nick_name").Create(&user)//创建记录并更新未给出的字段db.Omit("phone").Create(&user)//批量插入 使用 CreateInBatches 创建时,你还可以指定创建的数量var users = []TUser{{Name: "test1", Password: "123", NickName: "hello1", CreatedAt: time.Now()}, {Name: "test2", Password: "123", NickName: "hello2", CreatedAt: time.Now()}}db.Create(&users)db.CreateInBatches(&users, 100)

5、具体代码:

package mainimport ("fmt""log""os""time""gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/logger")//model:type TUser struct {ID uint `gorm:"primaryKey"`NamestringPassword stringPhonestring `gorm:"phone"`NickName string `gorm:"nick_name"`CreatedAt time.Time `gorm:"column:created_at;type:datetime"`UpdatedAt time.Time `gorm:"column:updated_at;type:datetime"`DeletedAt time.Time `gorm:"column:deleted_at;type:datetime"`}//指定数据库表名称func (TUser) TableName() string {return "t_user"}func main() {//启用打印日志newLogger := logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), // io writerlogger.Config{SlowThreshold: time.Second, // 慢 SQL 阈值LogLevel:logger.Info, // Log level: Silent、Error、Warn、InfoColorful:false, // 禁用彩色打印},)dsn := "root:root@tcp(127.0.0.1:3306)/go_admin?charset=utf8mb4&parseTime=True&loc=Local"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: newLogger,})if err != nil {fmt.Println(err)return}//普通创建user := TUser{Name: "test", Password: "123", NickName: "hello", Phone: "123", CreatedAt: time.Now()}result := db.Create(&user) // 通过数据的指针来创建fmt.Println(result.RowsAffected)//创建记录并更新给出的字段db.Select("name", "password", "phone", "nick_name").Create(&user)//创建记录并更新未给出的字段db.Omit("phone").Create(&user)//批量插入 使用 CreateInBatches 创建时,你还可以指定创建的数量var users = []TUser{{Name: "test1", Password: "123", NickName: "hello1", CreatedAt: time.Now()}, {Name: "test2", Password: "123", NickName: "hello2", CreatedAt: time.Now()}}db.Create(&users)db.CreateInBatches(&users, 100)}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。