gorm

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
	// }

}

  

posted on 2021-06-10 15:58  HHMLXL  阅读(32)  评论(0)    收藏  举报

导航