日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 ORM,全稱 Object-Relational MApping,即對象-關系映射,是一種程序設計技術,用于實現面向對象編程語言里對象的表現形式與關系數據庫中數據的存儲之間的轉換。

在實際工作中,我們使用程序操作對象,然后通過對象與數據庫之間的映射關系,可以使得我們不再操作 SQL,而是操作程序中的對象,將數據庫中的數據映射為對象,這樣可以大大提高開發(fā)效率,使開發(fā)者能夠更專注于業(yè)務邏輯的實現。

具體來說,比如我們有一張 “用戶” 表在 SQL 數據庫中,我們可以定義一個 "User" 的對象在我們的代碼中,然后我們可以通過操作這個 "User" 對象來實現對 "用戶" 表的操作。比如我們創(chuàng)建一個 "User" 對象并保存,實際上是在 "用戶" 表中插入一條數據,我們刪除一個 "User" 對象,實際上是刪除 "用戶" 表中的某條數據。

ORM框架就是封裝了這種映射關系,提供了對數據庫增刪查改等操作的接口,讓開發(fā)者更方便地操作數據庫。例如,JAVA的Hibernate,Python/ target=_blank class=infotextkey>Python的SQLAlchemy,Go語言的GORM。

 

一、GORM

Github:https://github.com/go-gorm

    GORM 是一個 Go 語言寫的 ORM 庫,通過使用它可以簡潔地完成對數據庫的操作。它支持關聯(包括一對一,一對多和多對多)、鉤子(在創(chuàng)建、更新、查詢、刪除之前或之后運行特定的代碼)、預加載(即先加載相關的數據,再執(zhí)行指定操作)、事務處理,以及自動遷移(只是自動創(chuàng)建表,修改字段,不會刪除數據且不支持重命名)等功能。

首先,你需要安裝 GORM。這可以通過運行以下命令完成:

  • go get -u github.com/jinzhu/gorm

然后,你可以開始使用 GORM,如下就是一個簡單的使用例子:

很好,假設我們已經擁有一個名為 user 的表,我們可以這樣操作:

首先,定義 User 結構體:

type User struct {  gorm.Model  Name         string `gorm:"type:varchar(255)"`  EmAIl        string `gorm:"type:varchar(100);"`  Role         string `gorm:"type:varchar(255)"`  MemberNumber string `gorm:"type:varchar(50)"`}
// TableName sets the insert table name for this struct typefunc (u *User) TableName() string {  return "users"}

在這個例子中,User 結構體就會映射到 "users" 表。你可以根據需要更改 TableName 函數返回的字符串,來改變 User 結構體對應的數據庫表。

注意,如果不提供 TableName 方法,GORM 默認會將結構體名(首字母小寫)加上一個 's'作為表名。比如 User 結構體默認對應的表名是 "users" 。

 

代碼中連接數據庫

  db, err := gorm.Open("MySQL", "root:root@/test?charset=utf8&parseTime=True&loc=Local")  if err != nil {    panic("failed to connect to database")  }  defer db.Close()

接下來,進行表的遷移:

  • db.AutoMigrate(&User{})

user := User{Name: "Test User", Email: "testuser@email.com", Role: "admin", MemberNumber: "123456"}db.Create(&user)



var user Userdb.First(&user, 1) // 找ID為1的用戶db.First(&user, "name = ?", "Test User") // 找名字為Test User的用戶

  • db.Model(&user).Update("Email", "newemail@email.com")

  • db.Delete(&user)

二、XORM

github:https://github.com/go-xorm/xorm

    XORM 是一個簡單且強大的 Go 語言 ORM 庫,支持 MySQL, PostgreSQL, SQLite3, SqlServer, Oracle 的數據庫操作。包含了基本的數據操作(CRUD)、事務處理、緩存及會話等功能。

首先,你需要安裝 XORM。這可以通過運行以下命令完成:

  • go get xorm.io/xorm

然后,你可以開始使用 XORM,下面是一個簡單的使用例子:

package main
import (  "fmt"  _ "github.com/go-sql-driver/mysql"  "xorm.io/xorm")
type User struct {  Id int `xorm:"pk autoincr"`  Name string  Email string  Role string  MemberNumber string}
func main() {  engine, err := xorm.NewEngine("mysql", "root:root@/test?charset=utf8")  if err != nil {    fmt.Println("Database connection failed: ", err)    return  }
  // 同步結構體到數據庫中  err = engine.Sync2(new(User))  if err != nil {    fmt.Println("Database sync failed: ", err)    return  }
  // 插入  u := User{Name: "Test", Email: "test@abc.com", Role: "admin", MemberNumber: "123456"}
  _, err = engine.Insert(&u)  if err != nil {    fmt.Println("Insert failed: ", err)    return  }
  // 查詢  users := make([]User, 0)  err = engine.Find(&users)  if err != nil {    fmt.Println("Find failed: ", err)    return  }
  fmt.Println("Users: ", users)
  _, err = engine.ID(u.Id).Delete(&u)  if err != nil{    fmt.Println("Delete failed: ", err)    return  }
}

 

分享到:
標簽:框架
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰(zhàn)2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定