gorm 简单使用
7

创建main.go

下载扩展

 go get github.com/go-sql-driver/mysql 
 go get github.com/jinzhu/gorm

代码

package main

import (
    _ "github.com/go-sql-driver/mysql"//加载mysql
    "github.com/jinzhu/gorm"//gorm 扩展包
    "fmt"
)
//注意如果 定义成小写username 引用时 无法调用
type User struct {
    ID       int64  // 列名为 `id`
    Username string // 列名为 `username`
    Password string // 列名为 `password`
}

//设置表名
func (User) TableName() string {
    return "users"
}

func main() {
    db, err := gorm.Open("mysql", "数据库用户名:数据库密码@tcp(ip地址:端口号)/数据库名?     charset=utf8&parseTime=True&loc=Local&timeout=10ms")
     defer db.Close()
    if err != nil {
        fmt.Printf("mysql connect error %v", err)
    }

    //执行迁移文件 生成数据表
    db.CreateTable(&User{})

    //添加数据
    user := User{Username: "root", Password: "root"}
    result := db.Create(&user)

    if result.Error != nil {
        fmt.Printf("insert row err %v", result.Error)
        return
    }

    fmt.Println(user.ID) //返回id

    //查询单条数据
    getUser := User{}

    //SELECT id, first FROM users WHERE id = 1 LIMIT 1;
    db.Select([]string{"id", "username"}).First(&getUser, 1)
    fmt.Println(getUser) //打印查询数据

    //修改数据
    user.Username = "update username"
    user.Password = "update password"
    db.Save(&user)

    //查询列表数据
    users := []User{}
    db.Find(&users)
    fmt.Println(&users)//获取所有数据

  //删除数据
    db.Delete(&user)
}

执行

go run main.go
讨论数量: 5

gorm会自动关闭db吗?

4个月前

@zhouzhou 不会,需要手动关闭。
代码: defer db.Close()

4个月前
skyLee

import "github.com/go-sql-driver/mysql"//加载mysql

这行代码是不是没用到呢?

2个月前

@skyLee 有用到

2个月前

@skyLee orm里面需要加载这个包

2个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!