红魔咖啡馆

头发越掉越多,头发越掉越少

0%

【GORM】配置与连接数据库

配置与连接

下载与配置

安装:

go get -u gorm.io/gorm go get -u gorm.io/driver/用的数据库

连接数据库:

首先要导入对应的驱动程序

1
2
"gorm.io/driver/用的数据库"
"gorm.io/gorm"

MySQL

1
2
3
4
5
6
7
8
9
import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

func main() {
  dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
}

PostgreSQL

1
2
3
4
5
6
7
import (
  "gorm.io/driver/postgres"
  "gorm.io/gorm"
)

dsn := "host=localhost user=gorm password=gorm dbname=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main

import (
	"gorm.io/gorm"
	"gorm.io/driver/mysql"
	"fmt"
)

type User struct {
	ID	int64 
	Name string `gorm:"default:'issac'"`
	Age int64
}
func main() {
	// 连接
	db, err := gorm.Open(mysql.Open("root:160721@tcp(localhost)/gorm-test?charset=utf8mb4&parseTime=True"), &gorm.Config{})
	if err!=nil {
		panic(err)
	}

	db.AutoMigrate(&User{})

	// 创建一条记录 相当于创建一个结构体实例
	u := []*User{{Age: 18},{Name: "lilth", Age: 10}}
	
	// 判断主键是否为空
	db.Create(&u)

	var user User
	db.First(&user)
	fmt.Println(user)
	var auser []User
	db.Find(&auser)
	fmt.Println(auser)
}