前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库Go-gorm实战

数据库Go-gorm实战

原创
作者头像
爽朗地狮子
发布2022-10-20 11:24:38
4320
发布2022-10-20 11:24:38
举报
文章被收录于专栏:云原生系列云原生系列

安装环境

go get -u github.com/jinzhu/gorm

一. model结构体

在线转换

https://printlove.cn/tools/sql2gorm

model的结构:

代码语言:txt
复制
package model

import (
   "database/sql"
)

type User_Gorm struct {
   UserId    int          `gorm:"column:user_id;type:int(11);primary_key" json:"user_id"`
   UserName  string       `gorm:"column:user_name;type:varchar(60);NOT NULL" json:"user_name"`
   Password  string       `gorm:"column:password;type:varchar(32)" json:"password"`
   Sex       int          `gorm:"column:sex;type:int(11)" json:"sex"`
   Birthday  sql.NullTime `gorm:"column:birthday;type:timestamp" json:"birthday"`
   LastLogin sql.NullTime `gorm:"column:last_login;type:timestamp" json:"last_login"`
   BindPhone string       `gorm:"column:bind_phone;type:varchar(20)" json:"bind_phone"`
   RegTime   sql.NullTime `gorm:"column:reg_time;type:timestamp" json:"reg_time"`
}

二. 执行语句

代码语言:txt
复制
package order

import (
   "database/sql"
   "fmt"
   "sql-operator/model"
   "time"

   "github.com/jinzhu/gorm"
   _ "github.com/jinzhu/gorm/dialects/mysql"
)

var gorm_db *gorm.DB

func ConnectGormDatabases() {
   //"用户名:密码@[连接方式](主机名:端口号)/数据库名"
   var err error
   gorm_db, err = gorm.Open("mysql", "root:Xcy3329257@(localhost)/db_common?charset=utf8mb4&parseTime=True&loc=Local")
   if err != nil {
      fmt.Println("gorm数据库连接成功")
      panic(err)
   }
}

func CloseGormDatabases() {
   gorm_db.Close()
}

func SelectGormUser() {
   var users []model.User_Gorm
   // Get all records
   result := gorm_db.Find(&users)
   println("查找到的result数目" + fmt.Sprintf("%d", result.RowsAffected))
   for i := 0; i < len(users); i++ {
      fmt.Printf("i=%d value=%v \n", i, users[i])
   }
}

func InsertGormUser() {
   //user := model.User{UserId: 13, UserName: "tomxiang10", Password: "admin10", Sex: 1, Birthday: sql.NullTime{time.Now(), true}, LastLogin: sql.NullTime{time.Now(), true}, BindPhone: "15817304444", RegTime: sql.NullTime{time.Now(), true}}
   user := model.User_Gorm{UserName: "tomxiang10", Password: "admin10", Sex: 1, Birthday: sql.NullTime{time.Now(), true}, LastLogin: sql.NullTime{time.Now(), true}, BindPhone: "15817304444", RegTime: sql.NullTime{time.Now(), true}}
   gorm_db.Create(&amp;user)
}

func DeleteGormUser() {
   var user model.User_Gorm
   gorm_db.Where("user_id = ?", 14).Take(&amp;user)
   gorm_db.Delete(user)
}

func UpdateGormUser() {
   var user model.User_Gorm
   //查找user_id=13
   gorm_db.Where("user_id = ?", 13).Take(&amp;user)
   //修改为当前时间
   user.Birthday = sql.NullTime{time.Now(), true}
   user.RegTime = sql.NullTime{time.Now(), true}
   user.LastLogin = sql.NullTime{time.Now(), true}
   gorm_db.Save(user)
}

参考链接

  1. gorm官网

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装环境
  • 一. model结构体
  • 二. 执行语句
  • 参考链接
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档