Go(Golang이라고도 함)는 Google에서 개발한 가비지 수집 기능을 갖춘 정적으로 강력한 유형의 컴파일된 동시 프로그래밍 언어입니다. 아래에서는 go Getting Started Tutorial 칼럼에서 mysql에 관한 몇 가지 작업을 소개하겠습니다.
go에서 사용하는 라이브러리는 go-sql-driver/mysql입니다. 직접 설치 go get
go get -u github.com/go-sql-driver/mysql
sql.DB
DB 유형에 사용 가능한 기능은
1, Query( c 문자열, args 인터페이스{} …) (*행, 오류), SELECT 문에서 흔히 사용됨
2, Exec(c 문자열, args 인터페이스{} …) (*행, 오류), UPDATE 및 INSERT
에서 일반적으로 사용됨3, prepare(c string) (*Stmt, error), 기타 명령문도 위 명령문을 실행하는 데 사용할 수 있으며 Stmt 포인터를 반환합니다.
sql.Stmt
Stmt는 실행할 수 있는 준비된 명령문입니다. 데이터베이스 문 작업, 일반적으로 사용되는 함수는 다음과 같습니다:
Exec(args 인터페이스{} …)(결과, 오류), 지정된 매개 변수와 준비된 문을 실행한 다음 문의 전체 결과를 반환합니다.
//... stmt, err := db.Perpare("INSERT INTO User(user,pwd) VALUES (?, ?)") if err != nil { panic(err) } defer stmt.Close() _, err := stmt.Exec("laoli", "123456") if err != nil { panic(err) } //... //... stmt, err := db.Perpare("DELETE FROM User") if err != nil { panic(err) } defer stmt.Close() _, err := stmt.Exec() if err != nil { panic(err) }
Query(args 인터페이스 {} …) (*Rows, error ), 지정된 매개변수를 사용하고 준비된 문을 실행하여 행 결과를 반환합니다. 예를 들어 SELECT 작업은 이 함수를 사용하여 호출해야 합니다.
sql.Rows
Rows는 SQL 문 실행으로 반환된 테이블입니다. Rows.Next()에서 false가 반환되면 캐시가 자동으로 해제됩니다.
소스 코드 보기:
// 源码 func (rs *Rows) Next() bool { var doClose, ok bool withLock(rs.closemu.RLocker(), func() { doClose, ok = rs.nextLocked() }) if doClose { rs.Close() //在这里释放掉了 } return ok }
예:
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) var db *sql.DB func mian() { db = sql.Open("mysql", "root:123456@tcp(127.0.0.1)/test") if err := db.Ping(); err != nil { panic(err) } } func Insert() { _, err := db.Exec("INSERT INTO User(user, pwd) VALUE (?, ?)", "laowang", "123456") if err != nil { panic(err) } } func SelectRow() { rows, err := db.Query("SELECT * FROM User WHERE user=?", "laowang") if err != nil { panic(err) } //defer rows.Close() //如果后面代码没有循环调用rows.Next(),就需要手动在这里释放一下,不然会一直占用缓存 var user string var pwd string for rows.Next() { row.Scan(&user, &pwd) } print(user, pwd) }
더 많은 Go 언어 지식을 보려면 PHP 중국어 웹사이트 go 언어 튜토리얼 칼럼을 주목하세요.
위 내용은 Golang mysql 작업 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!