golang 에서 my sql 데이터 베 이 스 를 조작 하 는 실현 코드

2931 단어 golangmysql
머리말
Golang 은 데이터베이스/sql 패 키 지 를 SQL 데이터베이스 에 접근 하 는 데 사용 합 니 다.데이터 베 이 스 를 조작 하 는 입구 대상 sql.DB 로 서 주로 두 가지 중요 한 기능 을 제공 합 니 다.
•sql.DB 는 데이터베이스 구동 을 통 해 바 텀 데이터베이스 연결 을 관리 하 는 열 림 과 닫 기 동작 을 제공 합 니 다.
•sql.DB 는 데이터베이스 연결 탱크 를 관리 합 니 다.
주의해 야 할 것 은 sql.DB 는 데이터베이스 연결 대상 이 아니 라 데이터 베 이 스 를 조작 하 는 추상 적 인 접근 인 터 페 이 스 를 표시 합 니 다.드라이버 에 따라 데이터베이스 연결 을 닫 고 연결 풀 을 관리 할 수 있 습 니 다.사용 중인 연결 은 바 쁜 것 으로 표시 되 어 있 으 며,다 쓴 후 연결 풀 로 돌아 가 다음 사용 을 기다 리 고 있 습 니 다.따라서 연결 을 연결 탱크 에 다시 놓 지 않 으 면 과도 한 연결 로 인해 시스템 자원 이 소 진 될 수 있다.
Golang 조작 mysql 안내
Golang 이 my sql 데이터 베 이 스 를 조작 하 는 느낌 은 phop 중의 Pdo 가 my sql 에 대해 조작 하고 싶 습 니 다.만약 에 당신 이 원래 phoper 에서 golang 으로 전환 한 것 을 받 아들 이 는 것 이 매우 친절 하고 전체적인 느낌 이 매우 간단 하 다 고 가정 합 니 다.
Golang 동작 my sql 의 주의 점
golang 은 my sql 작업 에 대한 표준 라 이브 러 리 를 실 현 했 으 나 my sql 구동 을 실현 하지 못 했 습 니 다.
따라서 우 리 는 먼저 github 에서go-sql-driver이 드라이버 패 키 지 를 다운로드 해 야 합 니 다.(src 디 렉 터 리 에서 실행 하 는 것 을 권장 합 니 다)명령 은 다음 과 같 습 니 다.

go get github.com/go-sql-driver/mysql
test 데이터베이스 에 표 필드 를 만 드 는 것 은 다음 과 같다.

CREATE TABLE IF NOT EXISTS `test`.`user` (
 `user_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '    ',
 `user_name` VARCHAR(45) NOT NULL COMMENT '    ',
 `user_age` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '    ',
 `user_sex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '    ',
 PRIMARY KEY (`user_id`))
 ENGINE = InnoDB
 AUTO_INCREMENT = 1
 DEFAULT CHARACTER SET = utf8
 COLLATE = utf8_general_ci
 COMMENT = '   '
데이터 증가(insert)작업 실현

package main
import (
 "fmt"
 "database/sql"
 //  mysql   
 _ "github.com/go-sql-driver/mysql" 
)
func main(){
 //  database/sql   Open     
 db,err := sql.Open("mysql","root:root@tcp(localhost:3306)/test?charset=utf8")
 if err != nil {
 fmt.Println("       :",err)
 return 
 }
 //  DB       Prepare     ,Prepare     stmt  
 stmt,err := db.Prepare("insert into `user`(user_name,user_age,user_sex)values(?,?,?)")
 if err!=nil{
 fmt.Println("     :",err)
 return  
 }
 //  Stmt         
 result,err := stmt.Exec("pengjin",33," ")
 if err!=nil{
 fmt.Println("       :",err)
 return  
 }else{
 rows,_ := result.RowsAffected()
 fmt.Println("    ,    ",rows," " )
 }
}
위의 코드 와 같이 php 에서 pdo 를 조작 하 는 느낌 이 듭 니 다.예 를 들 어 위의 코드 는 실제 적 으로 Prepare 방법 을 작성 하지 않 고 Stmt 인 스 턴 스 의 Exec 방법 을 통 해 직접 실현 할 수 있 습 니 다.
총결산
위 에서 말씀 드 린 것 은 고 랑 에서 my sql 데이터 베 이 스 를 조작 하 는 실현 코드 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기