gorm 简单使用

创建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
本作品采用《CC 协议》,转载必须注明作者和本文链接
yourself
讨论数量: 4
yourself

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

5年前 评论

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

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

5年前 评论
yourself

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

5年前 评论

不好意思,想請問所以我要先在mysql CREATE DATABASE todo;再把todo 放在)/数据库名? ,我一直卡在不知道怎麼用gorm怎麼連到mysql,一直卡住

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!