package main
import (
"fmt"
// "log"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
// 表定义
type Student struct {
ID uint `gorm:"primary_key"`
Name string
Gender string
Hobby string
Address string
Like Like `gorm:"foreignkey:LikeId"`
}
type Like struct {
ID int `gorm:"primary_key"`
Title string `gorm:"type:varchar(50);not null;index:title_idx"`
Hash uint64 `gorm:"unique_index:hash_idx"`
UID string
// UId int
}
func main() {
// db,err:=gorm.Open("mysql","username:pwd@(ip:port)/datebase?charset=utf8mb4&parseTime=True&loc=Local")
if err != nil {
panic(err)
}
defer db.Close()
// 创建表,自动迁移
db.AutoMigrate(&Student{}, &Like{})
// 插入
// c_stu:=Student{Name:"jon",Gender: "man",Hobby: "program"}
// db.Create(&c_stu)
// 插入并获取错误
// if err:=db.Create(&u).Error; err!=nil{
// fmt.Println(err)
// }
// 更新
// var u_stu Student
// //更新全部
// db.Model(&u_stu).Update("hobby","money")
// // 更新某一条,id为4的
// db.Model(&u_stu).Where("id=?",4).Update("name","lxl")
// db.Model(&u_stu).Where("id=?",4).Update(Student{Name:"lxl"})
// 删除
// var d_stu Student
// 删除全部
// db.Delete(&d_stu)
// 删除某一条
// db.First(&d_stu).Delete(&d_stu)
// db.Where("id=?",1).Delete(&d_stu)
// db.Model(&d_stu).Where("id=?",1).Delete(&d_stu)
// 查询
var f_stu Student
// 条件查询
// s:=Student{ID: 1}
// db.Find(&f_stu)
// db.Find(&f_stu,"id=?",1)
fmt.Println(db.Where("id=?", 1).Find(&f_stu))
// 事务
// func CreStu(db *grom.DB)err{
// tx:=db.Begin()
// if err:=tx.Create(&Student{ID:3}).Error;err!=nil{
// tx.Rollback()
// return err
// }
// if err:=tx.Create(&Student{ID:4}).Error;err!=nil{
// tx.Rollback()
// return err
// }
// tx.Commit()
// return nil
// }
}