반응형
MySql을 접속하기 위해 database/sql과 MySql 드라이버가 필요하다.
database/sql는 표준패키지이므로 MySql 드라이버를 다운 받는다.
쉘이나 커맨드창에서 go get을 통해 아래와 같이 MySql 드라이버를 다운 받은 후 Import을 해야한다.
go get github.com/go-sql-driver/mysql |
DB에 아래와 같이 테이블과 데이터를 생성한다.
create table person |
예제코드 - MultiRow
package main
import (
"fmt"
"os"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
//conn, err := sql.Open("mysql", "계정명:계정패스워드@tcp(DB주소:DB포트)/데이터베이스명")
conn, err := sql.Open("mysql", "testuser:test1234@tcp(localhost:3306)/mydb")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
rows, err := conn.Query("select name, address from person")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
//조회한 데이터를 반복문으로 데이터를 출력
for rows.Next() {
var name string
var address string
rows.Scan(&name, &phone)
fmt.Printf("name : %s, address : %s\n", name, address)
}
//DB 접속 해제
conn.Close()
}
결과
name : 홍길동, address : 경기도 성남시 분당구 삼평동 name : 임꺽정, address : 서울시 노원구 중계동 name : 구미호, address : 경기도 고양시 일산동구 백석동 |
예제코드 - SingleRow
package main
import (
"fmt"
"os"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
//conn, err := sql.Open("mysql", "계정명:계정패스워드@tcp(DB주소:DB포트)/데이터베이스명")
conn, err := sql.Open("mysql", "testuser:test1234@tcp(localhost:3306)/mydb")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
var name string
var address string
//다중 리턴이 아닌 단일 리턴인 경우 err는 위에서 변수를 생성하였으므로 := 가 아닌 = 으로 사용
err = conn.Query("select name, address from person").Scan(&name, &phone)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
//조회한 데이터를 반복문으로 데이터를 출력
fmt.Printf("name : %s, address : %s\n", name, address)
//DB 접속 해제
conn.Close()
}
결과
name : 홍길동, address : 경기도 성남시 분당구 삼평동 |
반응형
'개발관련 > Go언어' 카테고리의 다른 글
[Golang] Mysql Insert, Update, Delete 사용하기 (0) | 2019.12.08 |
---|---|
Mac에서 Go 컴파일러 설치 (0) | 2018.09.03 |