golang 連接 mysql 數據庫 & postgres 數據庫

連接mysql 庫

package main
import (
	"fmt"
	"strings"
	"database/sql"
	_"github.com/go-sql-driver/mysql"
)

const (
    userName = "***"
    password = "***"
    ip = "***"
    port = "***"
    dbName = "***"
)
var db *sql.DB 
func consql() {
	path := strings.Join([]string{userName, ":", password, "@tcp(",ip, ":", port, ")/", dbName, "?charset=utf8"}, "")
	fmt.Println(path)
    //打開數據庫,前者是驅動名,所以要導入: _ "github.com/go-sql-driver/mysql"
    db, _ = sql.Open("mysql", path)
    //用來設置長連接的最長使用時間(從創建時開始計算),超過該時間Go會自動關閉該鏈接。
	//db.SetConnMaxLifetime(100)

	db.SetMaxOpenConns(5)   // 設置最大的併發打開連接數爲5。
	
	//設置上數據庫最大閒置連接數,sql.DB允許在連接池中最多保留10個空閒連接
    db.SetMaxIdleConns(10)
    //驗證連接
    if err := db.Ping(); err != nil{
        fmt.Println("open database fail")
        return
    }
	fmt.Println("connnect success")
	
	rows, err := db.Query("select * from table_name")
	defer rows.Close()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(err)
	for rows.Next(){
		var res string
		rows.Scan(&res)
		fmt.Println(res)
	}
}

func main(){
	consql()
}

連接postgres庫

package main
 
import _ "github.com/lib/pq"
 
func main() {
 
	pgsqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+"password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
 
	db, err := sql.Open("postgres", pgsqlInfo)
 
	//fmt.Println(reflect.TypeOf(db))  //*sql.DB
 
	err = db.Ping() //會將連接立馬返回給連接池。
 
	query_sql := "select * from tablename"
 
	rows, err := db.Query(query_sql)
 
	defer rows.Close()
 
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章