创建结构体

type User struct {
    Id 			int 	`gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
    UserName	string 	`gorm:"column:user_name" json:"user_name"`
    CreatedAt	int 	`gorm:"column:created_at" json:"created_at"`
    UpdatedAt	int		`gorm:"column:updated_at" json:"updated_at"`
    DeletedAt	gorm.DeletedAt `gorm:"column:deleted_at" json:"-"`
}

新增

user := User{}
user.UserName = "zhangsan"
if err := db.Create(&user).Error; err != nil {
    fmt.Println("插入失败", err)
    return
}

查询

// 定义接收查询结果的结构体变量
user := User{}

// 查询一条记录。
db.Take(&user)
// 等价于:SELECT * FROM `user` LIMIT 1  

// 查询一条记录,根据主键ID排序(正序),返回第一条记录。   
db.First(&user)
// 等价于:SELECT * FROM `user` ORDER BY `id` ASC LIMIT 1 

// 查询一条记录, 根据主键ID排序(倒序),返回第一条记录。
// 语义上相当于返回最后一条记录
db.Last(&user)
// 等价于:SELECT * FROM `user`  ORDER BY `foods`.`id` DESC LIMIT 1   

//查询多条记录,Find函数返回的是一个数组。
// 因为Find返回的是数组,所以定义一个商品数组用来接收结果
var user []User
db.Find(&user)
// 等价于:SELECT * FROM `user`

// 查询一列值。
// 数组
var usernames []string

// 返回所有标题
// 等价于:SELECT user_name FROM `user`
// 这里Model函数是为了绑定一个模型实例,可以从里面提取表名。
db.Model(&User{}).Pluck("user_name", &usernames)