반응형

MySql을 접속하기 위해 database/sql과 MySql 드라이버가 필요하다.
database/sql는 표준패키지이므로 MySql 드라이버를 다운 받는다.
쉘이나 커맨드창에서 go get을 통해 아래와 같이 MySql 드라이버를 다운 받은 후 Import을 해야한다.

go get github.com/go-sql-driver/mysql

 

DB에 아래와 같이 테이블과 데이터를 생성한다.

create table person
(
name varchar(32) not null,
phone varchar(13),
address varchar(200)
);

insert into person (name, address) values('홍길동', '경기도 성남시 분당구 삼평동');
insert into person (name, address) values('임꺽정', '서울시 노원구 중계동');
insert into person (name, address) values('구미호', '경기도 고양시 일산동구 백석동');
commit;

예제코드 - 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

+ Recent posts