go gorm指定别名_GORM入门指南
gorm是一個使用Go語言編寫的ORM框架。它文檔齊全,對開發者友好,支持主流數據庫。
gorm介紹
GORM?gorm.io內含十分齊全的中文文檔,有了它你甚至不需要再繼續向下閱讀本文。
安裝
go get -u github.com/jinzhu/gorm連接數據庫
連接不同的數據庫都需要導入對應數據的驅動程序,GORM已經貼心的為我們包裝了一些驅動程序,只需要按如下方式導入需要的數據庫驅動即可
import _ "github.com/jinzhu/gorm/dialects/mysql" // import _ "github.com/jinzhu/gorm/dialects/postgres" // import _ "github.com/jinzhu/gorm/dialects/sqlite" // import _ "github.com/jinzhu/gorm/dialects/mssql"連接MySQL
import ("github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mysql" )func main() {db, err := gorm.Open("mysql", "user:password@(localhost)/dbname?charset=utf8mb4&parseTime=True&loc=Local")defer db.Close() }連接PostgreSQL
基本代碼同上,注意引入對應postgres驅動并正確指定gorm.Open()參數
import ("github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/postgres" )func main() {db, err := gorm.Open("postgres", "host=myhost port=myport user=gorm dbname=gorm password=mypassword")defer db.Close() }連接Sqlite3
基本代碼同上,注意引入對應sqlite驅動并正確指定gorm.Open()參數
import ("github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/sqlite" )func main() {db, err := gorm.Open("sqlite3", "/tmp/gorm.db")defer db.Close() }連接SQL Server
基本代碼同上,注意引入對應mssql驅動并正確指定gorm.Open()參數。
import ("github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mssql" )func main() {db, err := gorm.Open("mssql", "sqlserver://username:password@localhost:1433?database=dbname")defer db.Close() }GORM操作MySQL
package mainimport ("fmt""github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mysql" )// UserInfo 用戶信息 type UserInfo struct {ID uintName stringGender stringHobby string }func main() {db, err := gorm.Open("mysql", "root:root1234@(127.0.0.1:13306)/db1?charset=utf8mb4&parseTime=True&loc=Local")if err!= nil{panic(err)}defer db.Close()// 自動遷移db.AutoMigrate(&UserInfo{})u1 := UserInfo{1, "七米", "男", "籃球"}u2 := UserInfo{2, "沙河娜扎", "女", "足球"}// 創建記錄db.Create(&u1)db.Create(&u2)// 查詢var u = new(UserInfo)db.First(u)fmt.Printf("%#vn", u)var u UserInfodb.Find(&uu, "hobby=?", "足球")fmt.Printf("%#vn", uu)// 更新db.Model(&u).Update("hobby", "雙色球")// 刪除db.Delete(&u) }GORM Model定義
在使用ORM工具時,通常我們需要在代碼中定義模型(Models)與數據庫中的數據表進行映射,在GORM中模型(Models)通常是正常定義的結構體、基本的go類型或它們的指針。 同時也支持sql.Scanner及driver.Valuer接口(interfaces)。
gorm.Model
為了方便模型定義,GORM內置了一個gorm.Model結構體。gorm.Model是一個包含了ID,CreatedAt,UpdatedAt,DeletedAt四個字段的Golang結構體。
// gorm.Model 定義 type Model struct {ID uint `gorm:"primary_key"`CreatedAt time.TimeUpdatedAt time.TimeDeletedAt *time.Time }你可以將它嵌入到你自己的模型中:
// 將 `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt`字段注入到`User`模型中 type User struct {gorm.ModelName string }當然你也可以完全自己定義模型:
// 不使用gorm.Model,自行定義模型 type User struct {ID intName string }模型定義示例
type User struct {gorm.ModelName stringAge sql.NullInt64Birthday *time.TimeEmail string `gorm:"type:varchar(100);unique_index"`Role string `gorm:"size:255"` // 設置字段大小為255MemberNumber *string `gorm:"unique;not null"` // 設置會員號(member number)唯一并且不為空Num int `gorm:"AUTO_INCREMENT"` // 設置 num 為自增類型Address string `gorm:"index:addr"` // 給address字段創建名為addr的索引IgnoreMe int `gorm:"-"` // 忽略本字段 }總結
以上是生活随笔為你收集整理的go gorm指定别名_GORM入门指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python mkl freebsd_f
- 下一篇: css实现图片虚化_HTML+CSS入门