FORM使用指南(go语言)

需要在终端下载
go get -u github.com/jinzhu/gorm

go get gorm.io/driver/mysql

下例为form的增删查改

package main

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jinzhu/gorm"
)

type UserInfo struct {
	ID uint
	Name string
	Hobby string
	Gender string
}

func main()  {
	db, err := gorm.Open("mysql", "root:123456@(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True&loc=Local")
	if err!=nil {
		fmt.Println("数据库连接失败"+err.Error())
	}
	//退出程序后关闭数据库连接
	defer db.Close()

	//自动迁移
	db.AutoMigrate(&UserInfo{})
	u1:=UserInfo{ID:1, Name: "张三", Gender:"男", Hobby: "篮球",}
	u2:=UserInfo{ID:2, Name: "李四", Gender:"女", Hobby: "排球",}
	u3:=UserInfo{ID:3, Name: "王五", Gender:"男", Hobby: "足球",}
	db.Create(&u1)
	db.Create(&u2)
	db.Create(&u3)
	//查询
	var x = new(UserInfo)
	db.Last(x)
	var F = new(UserInfo)
	db.First(F)
	fmt.Println(x,F)
	//另一种查询的方法
	var Y UserInfo
	db.Find(&Y,"Hobby=?","足球")
	fmt.Println(Y)
	//更改
	db.Model(&u1).Update("Hobby","电脑")
	fmt.Printf("%#v\n",u1)
	//删除
	db.Delete(&u1)
}

全功能 ORM
关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
Create,Save,Update,Delete,Find 中钩子方法
支持 Preload、Joins 的预加载
事务,嵌套事务,Save Point,Rollback To Saved Point
Context、预编译模式、DryRun 模式
批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
SQL 构建器,Upsert,数据库锁,Optimizer/Index/Comment Hint,命名参数,子查询
复合主键,索引,约束
Auto Migration
自定义 Logger
灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus…
每个特性都经过了测试的重重考验
开发者友好


版权声明:本文为JR11111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。