Categorygithub.com/zhan3333/gdb/v2
modulepackage
2.0.0-alpha.1
Repository: https://github.com/zhan3333/gdb.git
Documentation: pkg.go.dev

# README

gdb

gorm 多连接管理

介绍

gorm v2 版本多连接, 使用需要预先配置 DefaultName ConnConfigs 两项

建议项目启动时即初始化所有连接:

  1. 初始化默认连接 InitDef()
  2. 初始化所有连接 InitAll()

需要访问默认连接 (Entry) , 可以使用以下方法

  1. gdb.DB
  2. gdb.Def()
  3. gdb.Conn(gdb.DefaultName)

要访问 sql.DB 对象, 可以使用

  1. gdb.Conn("connection name").SQLDB

安装

go get -u github.com@zhan3333/gdb/v2

使用

初始化

package main
import (
    "fmt"
    "github.com/zhan3333/gdb"
    "gorm.io/gorm"
    "gorm.io/gorm/logger"
    "log"
    "os"
    "time"
)

func main()  {
    maxLiftTime := 30 * time.Second
	parseTime := true
	gdb.DefaultName = "default"
	gdb.ConnConfigs = map[string]gdb.MySQLConf{
		gdb.DefaultName: {
			Host:        "127.0.0.1",
			Port:        "3306",
			Username:    "root",
			Password:    "123456",
			Database:    "test",
			ParseTime:   &parseTime,
			MaxLiftTime: &maxLiftTime,
			GORMConfig: &gorm.Config{
				Logger: logger.New(
					log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
					logger.Config{
						SlowThreshold: time.Second, // 慢 SQL 阈值
						LogLevel:      logger.Info, // Log level
						Colorful:      true,        // 禁用彩色打印
					},
				),
			},
		},
	} 
    _, err := gdb.InitDef()
    if err != nil {
        panic(fmt.Sprintf("connection db failed: %+v\n", err))
    }
}

使用

package main
import (
    "github.com/zhan3333/gdb"
    "gorm.io/gorm"
)

type User struct {
	gorm.Model
	Name     string `json:"name"`
	Email    string `json:"email"`
	Password string `json:"password"`
}

func main() {
    var users = []User{
		{
			Name:     "name1",
			Email:    "[email protected]",
			Password: "123456",
		}, {
			Name:     "name2",
			Email:    "[email protected]",
			Password: "123456",
		},
	}
	gdb.Def().CreateInBatches(&users, 1)
}

# Functions

No description provided by the author
获取指定的连接, 当创建新连接失败时, 会抛出异常 推荐在程序运行时即执行 InitAll() 初始化所有连接.
get default connection connection can't create will be panic.
init all config connections.
init DefaultName setting connection.
No description provided by the author

# Variables

连接配置数组.
默认数据库查询对象.
默认连接配置key.

# Structs

Entry
No description provided by the author
No description provided by the author

# Interfaces

No description provided by the author