Golang mysql 작업 소개

풀어 주다: 2020-02-26 17:39:25
앞으로
3002명이 탐색했습니다.

Go(Golang이라고도 함)는 Google에서 개발한 가비지 수집 기능을 갖춘 정적으로 강력한 유형의 컴파일된 동시 프로그래밍 언어입니다. 아래에서는 go Getting Started Tutorial 칼럼에서 mysql에 관한 몇 가지 작업을 소개하겠습니다.

Golang 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿