Gorm是Go當中一款ORM函數褲,有以下特點:
go get -u github.com/jinzhu/gorm
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
var (
db *gorm.DB
sqlConnection = "root:a123456@tcp(127.0.0.1:3306)/xxx"
)
//資料表結構
type GormUser struct {
ID uint `json:"id"`
Phone string `json:"phone"`
Name string `json:"name"`
Password string `json:"password"`
}
//初始化
func init() {
//開啟資料庫連接
var err error
db, err = gorm.Open("mysql", sqlConnection)
if err != nil {
panic("failed to connect database")
}
//自動建立
db.AutoMigrate(&GormUser{})
}
func main() {
defer db.Close()
db.DB().SetMaxIdleConns(10)//閒置中的連線數上限
db.DB().SetMaxOpenConns(100)//開啟中的連線數上限
GormUser := GormUser{
Phone: "13888888888",
Name: "Shirdon",
Password: md5Password("666666"), //使用者密碼
}
db.Save(&GormUser) //儲存到資料庫
db.Create(&GormUser) //儲存到資料庫
}
//md5加密
func md5Password(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
var (
db *gorm.DB
sqlConnection = "root:a123456@tcp(127.0.0.1:3306)/xxx"
)
//資料表結構
type GormUser struct {
ID uint `json:"id"`
Phone string `json:"phone"`
Name string `json:"name"`
Password string `json:"password"`
}
//初始化
func init() {
//開啟資料庫連接
var err error
db, err = gorm.Open("mysql", sqlConnection)
if err != nil {
panic("failed to connect database")
}
//自動建立
db.AutoMigrate(&GormUser{})
}
func main() {
defer db.Close()
db.DB().SetMaxIdleConns(10)//閒置中的連線數上限
db.DB().SetMaxOpenConns(100)//開啟中的連線數上限
GormUser := GormUser{
Phone: "13888888888",
Name: "Shirdon",
Password: md5Password("666666"), //使用者密碼
}
db.Save(&GormUser) //儲存到資料庫
db.Create(&GormUser) //儲存到資料庫
//删除用户
var GormUser = new(GormUser)
db.Where("phone = ?", "13888888888").Delete(&GormUser)
}
//md5加密
func md5Password(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
var (
db *gorm.DB
sqlConnection = "root:a123456@tcp(127.0.0.1:3306)/xxx"
)
//資料表結構
type GormUser struct {
ID uint `json:"id"`
Phone string `json:"phone"`
Name string `json:"name"`
Password string `json:"password"`
}
//初始化
func init() {
//開啟資料庫連接
var err error
db, err = gorm.Open("mysql", sqlConnection)
if err != nil {
panic("failed to connect database")
}
//自動建立
db.AutoMigrate(&GormUser{})
}
func main() {
defer db.Close()
db.DB().SetMaxIdleConns(10)//閒置中的連線數上限
db.DB().SetMaxOpenConns(100)//開啟中的連線數上限
GormUser := GormUser{
Phone: "13888888888",
Name: "Shirdon",
Password: md5Password("666666"), //使用者密碼
}
db.Save(&GormUser) //儲存到資料庫
db.Create(&GormUser) //儲存到資料庫
//查詢
var GormUser = new(GormUser)
db.Where("phone = ?", "18888888888").Find(&GormUser)
db.First(&GormUser, "phone = ?", "18888888888")
fmt.Println(GormUser)
}
//md5加密
func md5Password(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
var (
db *gorm.DB
sqlConnection = "root:a123456@tcp(127.0.0.1:3306)/xxx"
)
//資料表結構
type GormUser struct {
ID uint `json:"id"`
Phone string `json:"phone"`
Name string `json:"name"`
Password string `json:"password"`
}
//初始化
func init() {
//開啟資料庫連接
var err error
db, err = gorm.Open("mysql", sqlConnection)
if err != nil {
panic("failed to connect database")
}
//自動建立
db.AutoMigrate(&GormUser{})
}
func main() {
defer db.Close()
db.DB().SetMaxIdleConns(10)//閒置中的連線數上限
db.DB().SetMaxOpenConns(100)//開啟中的連線數上限
GormUser := GormUser{
Phone: "13888888888",
Name: "Shirdon",
Password: md5Password("666666"), //使用者密碼
}
db.Save(&GormUser) //儲存到資料庫
db.Create(&GormUser) //儲存到資料庫
//更新用户
var GormUser = new(GormUser)
err:=db.Model(&GormUser).Where("phone = ?", "18888888888").
Update("phone", "13888888888").Error
if err !=nil {
//do something
}
}
//md5加密
func md5Password(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
var (
db *gorm.DB
sqlConnection = "root:a123456@tcp(127.0.0.1:3306)/xxx"
)
//資料表結構
type GormUser struct {
ID uint `json:"id"`
Phone string `json:"phone"`
Name string `json:"name"`
Password string `json:"password"`
}
//初始化
func init() {
//開啟資料庫連接
var err error
db, err = gorm.Open("mysql", sqlConnection)
if err != nil {
panic("failed to connect database")
}
//自動建立
db.AutoMigrate(&GormUser{})
}
func main() {
defer db.Close()
db.DB().SetMaxIdleConns(10)//閒置中的連線數上限
db.DB().SetMaxOpenConns(100)//開啟中的連線數上限
//開啟
tx := db.Begin()
GormUser := GormUser{
Phone: "18888888888",
Name: "Shirdon",
Password: md5Password("666666"), //使用者密碼
}
if err := tx.Create(&GormUser).Error; err != nil {
tx.Rollback()
fmt.Println(err)
}
db.First(&GormUser, "phone = ?", "18888888888")
//交易提交
tx.Commit()
}
//md5加密
func md5Password(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
"log"
"os"
)
var (
db *gorm.DB
sqlConnection = "root:a123456@tcp(127.0.0.1:3306)/xxx"
)
//資料表結構
type GormUser struct {
ID uint `json:"id"`
Phone string `json:"phone"`
Name string `json:"name"`
Password string `json:"password"`
}
//初始化
func init() {
//開啟資料庫連接
var err error
db, err = gorm.Open("mysql", sqlConnection)
if err != nil {
panic("failed to connect database")
}
//自動建立
db.AutoMigrate(&GormUser{})
}
func main() {
defer db.Close()
db.DB().SetMaxIdleConns(10)//閒置中的連線數上限
db.DB().SetMaxOpenConns(100)//開啟中的連線數上限
//開啟
tx := db.Begin()
GormUser := GormUser{
Phone: "18888888888",
Name: "Shirdon",
Password: md5Password("666666"), //使用者密碼
}
if err := tx.Create(&GormUser).Error; err != nil {
tx.Rollback()
fmt.Println(err)
}
db.First(&GormUser, "phone = ?", "18888888888")
//交易提交
tx.Commit()
db.LogMode(true)
db.SetLogger(log.New(os.Stdout, "\r\n", 0))
}
//md5加密
func md5Password(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}