連接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()
}