디비 정보는 상수로 해 놓으면 편합니다.
아래 예제는 트랜잭션 같이 처리합니다.
트랜잭션이 필요없는 단순 select 에서는
rows, err := db.Query(`select count(*) from 테이블명 where indate = $1`, tnow2)
ErrorCon(err)
defer rows.Close()
이때는 begin 부분과 commit 부분이 당연 필요 없겠죠.... tx 가 이닌 바로 db 로 갑니다. 그리고 insert나 update 시에 인자 넣을 때 postgresql 은 $1, $2 이런 식으로 가고 mysql 은 ?, ? 이런식으로 구분하세요...
그럼 이제 본격적으로 예제를 봅시다..
참! 중요한 것이 있는데요... 오픈한 디비와 오픈한 rows 는 반드시 닫아주세요...
defer db.Close()
defer rows.Close()
defer tx2.Close()
이런식으로요...
대략 흐름이 이렇습니다.
주의 하셔야 할 것은 select 시에 빈값이 리턴되면 패닉 나요...
왠만한 패닉은 크게 신경 안 써도 되긴 하는데 때에 따라 리턴되는 값 확인해서 가야할 때가 있습니다.
단일 쿼리 같은 경우 scan 을 아래 같은 식으로 하세요...
varname string
err = db.QueryRow("SELECT name FROM 테이블이름 limit 1").Scan(&name)
iferr != nil {
log.Fatal(err)
}
fmt.Println(name)
그리고 인자 넣을때 ' ' 작은 따옴표는 필요없습니다. 또한 escape 도 알아서 해 줍니다. 따로 뭐 해줄 필요없어요...
p.s
최근 mysql 을 안 써서 약간 가물 한데.. 맞을 겁니다.
접속 부분만 빼고는 postgresql 과 거의 똑같습니다.
|
|
번 호
카테고리
제 목
이름
조회수
Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천 실행시간 : 0.05765 초 to webmaster... gogo sea. gogo sea.