go get -u github.com/go-sql-driver/mysql
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"os"
)
func main() {
//db, err := sql.Open("mysql", "계정명:계정패스워드@tcp(DB주소:DB포트)/데이터베이스명")
db, err := sql.Open("mysql", "test:test01@tcp(localhost:3306)/test01")
if err != nil {
log.Println(err)
os.Exit(1)
}
err = db.Ping()
if err != nil {
log.Println("DB Connection fail!")
} else {
log.Println("DB Connection Success!!")
}
defer db.Close()
//single row 반환
var name string
var email string
err = db.QueryRow("select name, email from tb_users where uid=2").Scan(&name,&email)
if err !=nil{
log.Println(err)
os.Exit(1)
}
fmt.Printf("name: %s, email : %s\n", name, email)
//DB 접속 해제
db.Close()
}
func main() {
//db, err := sql.Open("mysql", "계정명:계정패스워드@tcp(DB주소:DB포트)/데이터베이스명")
db, err := sql.Open("mysql", "test:test01@tcp(localhost:3306)/test01")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = db.Ping()
if err != nil {
log.Println("DB Connection fail!")
} else {
log.Println("DB Connection Success!!")
}
defer db.Close()
//Multi Row 반환
var name string
var email string
rows, err := db.Query("select name, email from tb_users order by 1")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
defer rows.Close() //반드시 닫는다 (지연하여 닫기)
for rows.Next() {
rows.Scan(&name, &email)
if err != nil {
log.Fatal(err)
}
fmt.Printf("name : %s, email : %s\n", name, email)
}
// DB close
db.Close()
}
db.SetConnMaxLifetime(time.Minute * 3)
db.SetMaxOpenConns(10)
db.SetMaxIdleConns(10)