godb

package module
v0.0.0-...-46a1644 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2020 License: Apache-2.0 Imports: 9 Imported by: 3

README

gorm-mysql

基于gorm 封装的mysql操作

Documentation

Overview

Package godb ...

Author: go_developer@163.com<张德满>

Description: 数据库连接配置定义

File: config.go

Version: 1.0.0

Date: 2020/07/18 20:41:13

Package godb ...

Author: go_developer@163.com<张德满>

Description: 基于 gorm 封装 db client, 并结合 gin 框架

File: database.go

Version: 1.0.0

Date: 2020/07/18 21:13:27

Package godb ...

Author: go_developer@163.com<张德满>

Description: 集成至gin的sql日志

File: log.go

Version: 1.0.0

Date: 2020/07/19 16:26:51

Index

Constants

View Source
const (
	// DefaultMaxConnect 默认最大连接数
	//
	// Author : go_developer@163.com<张德满>
	DefaultMaxConnect = 300

	// DefaultMaxOpenConnect 默认最大的打开连接数
	//
	// Author : go_developer@163.com<张德满>
	DefaultMaxOpenConnect = 300
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DBClient

type DBClient struct {
	GormDB *gorm.DB //获取读库实例则只读,获取写库实例,读写均可

	ReadOnly bool //是否只读(开发环境,一般读写库配置相同, 避免误使用)
	// contains filtered or unexported fields
}

DBClient (包装后的数据库连接, 推荐使用)

Author : go_developer@163.com<张德满>

var (
	// DB 数据库操作实例
	//
	// Author : go_developer@163.com<张德满>
	DB *DBClient
)

func InitDatabaseClient

func InitDatabaseClient(dbConfig *DBConfig) *DBClient

InitDatabaseClient 初始化数据库连接

Author : go_developer@163.com<张德满>

Date : 2020/07/19 17:07:11

func (*DBClient) Begin

func (dc *DBClient) Begin() error

Begin 开启事务

Author : go_developer@163.com<张德满>

Date : 2020/07/27 22:28:46

func (*DBClient) Commit

func (dc *DBClient) Commit() error

Commit 提交事务

Author : go_developer@163.com<张德满>

Date : 2020/07/27 22:29:28

func (*DBClient) GetDBClient

func (dc *DBClient) GetDBClient(ctx *gin.Context, readOnly bool) *DBClient

GetDBClient 获取包装后的数据库连接实例

Author : go_developer@163.com<张德满>

Date : 2020/07/18 21:46:49

func (*DBClient) Rollback

func (dc *DBClient) Rollback() error

Rollback 回滚事务

Author : go_developer@163.com<张德满>

Date : 2020/07/27 22:33:37

type DBConfig

type DBConfig struct {
	Read  *Mysql    `json:"read"`  //读库配置
	Write *Mysql    `json:"write"` //写库配置
	Log   *MysqlLog `json:"log"`   //日志文件路径
}

DBConfig 数据库连接配置

Author : go_developer@163.com<张德满>

type Mysql

type Mysql struct {
	Host           string `json:"host"`             //数据库主机
	Port           uint   `json:"port"`             //数据库端口
	User           string `json:"user"`             //数据库用户
	Password       string `json:"password"`         //数据库密码
	Database       string `json:"database"`         //数据库名
	Loc            string `json:"loc"`              //时区
	ParseTime      bool   `json:"parse_time"`       //解析时间
	Charset        string `json:"charset"`          //编码方式
	MaxConnect     int    `json:"max_connect"`      //最大连接数
	MaxOpenConnect int    `json:"max_open_connect"` //打开的最大连接数
	ForbbidenWrite bool   `json:"forbbiden_write"`  //禁止写入(禁止后,数据库为读库)
}

Mysql mysql 连接时,结构体的定义

Author : go_developer@163.com<张德满>

type MysqlLog

type MysqlLog struct {
	AppName       string `json:"app_name"`       //app名称
	OpenLog       bool   `json:"open_log"`       //是否开启日志
	LogPath       string `json:"log_path"`       //日志文件路径
	ConsoleOutput bool   `json:"console_output"` //是否控制台输出
	FileOutput    bool   `json:"file_output"`    //是否输出到文件
}

MysqlLog mysql log 操作日志配置

Author : go_developer@163.com<张德满>

type SQLLogger

type SQLLogger struct {
	// contains filtered or unexported fields
}

SQLLogger 实现日志接口,接手内置日志实例, 保证sql日志和请求日志能关联起来

Author : go_developer@163.com<张德满>

func NewSQLLogger

func NewSQLLogger(ctx *gin.Context, logger *goLogger.WrapperLogger) *SQLLogger

NewSQLLogger 获取sql日志实例

Author : go_developer@163.com<张德满>

Date : 2020/07/19 16:53:14

func (*SQLLogger) Print

func (l *SQLLogger) Print(values ...interface{})

Print 实现日志记录方法

Author : go_developer@163.com<张德满>

Date : 2020/07/19 16:55:33

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL