Categorygithub.com/jayden1228/mysql
modulepackage
2.0.3+incompatible
Repository: https://github.com/jayden1228/mysql.git
Documentation: pkg.go.dev

# README

mysql

mysql package

Install

go get github.com/jayden1228/mysql

Usage

DB

See more at mysql_test.go and gorm.

package examples

import (
	"fmt"

	"github.com/jayden1228/mysql"
)

type Product struct {
	// mysql base model
	mysql.Model
	Code  string
	Price uint
}

func ExampleRegister() {
	cnf := mysql.NewConfig("root",
		"123456",
		"127.0.0.1",
		"3306",
		"test",
		"utf8mb4",
		true,
		mysql.WithMaxOpenConns(1500))
	// register default db
	mysql.Register(cnf)

	cnf2 := mysql.NewConfig("root",
		"123456",
		"127.0.0.1",
		"3306",
		"test2",
		"utf8mb4",
		true)
	// register another db with key "test2"
	mysql.RegisterByKey(cnf2, "test2")

	defer mysql.Close()

	// default db

	db := mysql.GetDB()

	// Migrate the schema
	db.AutoMigrate(&Product{})

	// Create
	db.Create(&Product{Code: "L1212", Price: 1000})

	// Read
	var product Product
	db.First(&product, 1)                   // find product with id 1
	db.First(&product, "code = ?", "L1212") // find product with code l1212

	// Update - update product's price to 2000
	db.Model(&product).Update("Price", 2000)

	// Delete - delete product
	db.Delete(&product)

	fmt.Println("default db finish")

	// db with key "test2"

	db2 := mysql.GetDBByKey("test2")

	// Migrate the schema
	db2.AutoMigrate(&Product{})

	// Create
	db2.Create(&Product{Code: "L1212", Price: 1000})

	// Read
	db2.First(&product, 1)                   // find product with id 1
	db2.First(&product, "code = ?", "L1212") // find product with code l1212

	// Update - update product's price to 2000
	db2.Model(&product).Update("Price", 2000)

	// Delete - delete product
	db2.Delete(&product)

	fmt.Println("db2 finish")

	// Output: default db finish
	// db2 finish
}

MockDB

mock usage see more at https://github.com/DATA-DOG/go-sqlmock/blob/master/examples/orders/orders_test.go

_, mock := mysql.MockDB()

# Functions

Close closes current db connection.
GetDB get default db.
GetDBByKey get by with key.
MockDB mock default DB.
MockDBByKey mock DB by key.
NewConfig new config with default value.
Register register default examples.
RegisterByKey register examples by key.
Unregister unregister default examples.
UnregisterByKey unregister examples by key.
WithConnMaxLifetime new connMaxLifetime option.
WithMaxIdleConns new maxIdleConns option.
WithMaxOpenConns new maxOpenConns option.

# Structs

Config examples configuration.
ConnectionConfig connection string configuration.
Model examples model.

# Interfaces

ConfigOption config option.