golang 連接池mysql


package main

import (
   "database/sql"
   "fmt"
   "github.com/gin-gonic/gin"
   _ "github.com/go-sql-driver/mysql"
   "log"
)

var Db *sql.DB

func init() {
   fmt.Println("系統啟動的時候就加載(並不是用戶訪問的時候加載) 因為連接池 只是用戶使用的時候就會建立連接 用完返回")
   var err error
   Db, err = sql.Open("mysql", "xxx:xx@tcp(1111:3306)/xxxx")
   if err != nil {
      log.Panicln("err:", err.Error())
   }

   Db.SetMaxOpenConns(0)
   Db.SetMaxIdleConns(0)
}
func main() {

   r := gin.Default()
   r.GET("/ping", func(c *gin.Context) {
      fmt.Println("Hello, World1!")
        var err error
      result, e := Db.Exec("insert into xxxx(name, phone) values (?,?);", "姓名", "手機號")
      if e != nil {
         log.Panicln("user insert error", e.Error())
      }
      id, err := result.LastInsertId()
      if err != nil {
         log.Panicln("user insert id error", err.Error(), id)
      }
      c.JSON(200, gin.H{
         "message": "pong1",
      })
   })
   r.GET("/pings", func(c *gin.Context) {
      fmt.Println("Hello, World2!")
   })
   r.Run(":8082") // listen and serve on 0.0.0.0:8080
}

並發1000測試 cpu占用10%


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM