MySQL

使用 GORM 实现

单实例

app.yml
mysql:
  items:
    main:
      conn_max_lifetime: 1h
      dsn: root:123456@tcp(localhost:3306)/sample?charset=utf8mb4&parseTime=True&loc=Local
      max_idle_conns: 1
      max_open_conns: 10

参数

  • conn_max_lifetime: 连接的最大生命周期。

  • dsn: dsn 字符串。

  • max_idle_conns: 连接的最大空闲数。

  • max_open_conns: 连接的最大连接数。

main.go
package main

import (
	"fmt"
	"github.com/langwan/langgo"
	"github.com/langwan/langgo/components/mysql"
)

func main() {
	langgo.Run(&mysql.Instance{})
	var i int64
	mysql.Main().Raw("SELECT 1").Scan(&i)
	fmt.Println(i)
}

多实例

app.yml
mysql:
  items:
    main:
      conn_max_lifetime: 1h
      dsn: root:123456@tcp(localhost:3306)/sample?charset=utf8mb4&parseTime=True&loc=Local
      max_idle_conns: 1
      max_open_conns: 10
    slave:
      conn_max_lifetime: 1h
      dsn: slave:123456@tcp(localhost:3306)/sample?charset=utf8mb4&parseTime=True&loc=Local
      max_idle_conns: 1
      max_open_conns: 10
main.go
package main

import (
   "fmt"
   "github.com/langwan/langgo"
   "github.com/langwan/langgo/components/mysql"
)

func main() {
   langgo.Run(&mysql.Instance{})
   var i int64
   mysql.Main().Raw("SELECT 1").Scan(&i)
   fmt.Println(i)
   mysql.Get("slave").Raw("SELECT 2").Scan(&i)
   fmt.Println(i)
}

Last updated