gorm 连接mysql

一.安装

go get -u github.com/jinzhu/gorm

二.连接数据库

import (
  "github.com/jinzhu/gorm"
  _ "github.com/jinzhu/gorm/dialects/mysql"
)
	扩展:import后的下划线的作用即:当导入一个包时,该包下的文件里所有init()函数都会被执行,
		然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候
		就可以使用 import _ " "引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用
		init()函数,所以无法通过包名来调用包中的其他函数。

func main() {
    方法1:
    db, err := gorm.Open("mysql", "user:password@(localhost)/dbname?charset=utf8mb4&parseTime=True&loc=Local")
	方法2:
	connArgs := fmt.Sprintf("%s:%s@%s(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", "root","123456", "tcp","127.0.0.1", 3306, "dbname" )
	db, err := gorm.Open("mysql", connArgs)
	

	if err != nil{
		panic(err)
	}
	注意1:panic: dial tcp [::1]:3306: connectex: No connection could be made because the target machine actively refused it. 数据库没打开 被拒绝
	注意2:在创建连接之前一定要新建好数据库,在本例中dbname即为我创建的数据库名称,若不创建则会报如下错误  panic: Error 1049: Unknown database 'dbname'
	创建数据库的方法:在navicate中右击新建数据库即可!!!
  	defer db.Close()
	
	//自动检查Product结构是否变化,变化则进行迁移
	db.AutoMigrate(&UserInfo{})

	//创建数据行
	u1 := UserInfo{3,"紫色飞猪","男","直播"}
	db.Create(&u1)
}

gorm  连接mysql
简单的增删改查

package main

import (
	"fmt"
	"github.com/jinzhu/gorm"
	_"github.com/jinzhu/gorm/dialects/mysql"
)

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

func main()  {
	connArgs := fmt.Sprintf("%s:%s@%s(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", "root","WYQwyq021819.", "tcp","127.0.0.1", 3306, "gin_gorm" )
	db,err := gorm.Open("mysql",connArgs)
	if err != nil{
		panic(err)
	}
	defer db.Close()

	//自动检查Product结构是否变化,变化则进行迁移
	db.AutoMigrate(&UserInfo{})

	//创建数据行
	u1 := UserInfo{3,"紫色飞猪","男","直播"}
	db.Create(&u1)

	//查询
	var u UserInfo
	db.First(&u) //查询一行
	fmt.Printf("u:%#v\n",u)

	var u1 UserInfo
	db.Last(&u1)  //查询最后一行
	fmt.Printf("u1:%#v\n",u1)


	//更新
	db.Model(&u).Update("hobby","双色球")
	//删除
	db.Delete(&u).Delete("")


}
上一篇:gorm使用小结


下一篇:随笔·GO语言技术探索