> 백엔드 개발 > Golang > Go 언어로 MySQL 데이터베이스를 작동하는 방법

Go 언어로 MySQL 데이터베이스를 작동하는 방법

풀어 주다: 2020-02-15 15:06:20
앞으로
5932명이 탐색했습니다.

Go는 간단하고 안정적이며 효율적인 소프트웨어를 쉽게 구성할 수 있는 오픈 소스 프로그래밍 언어입니다. go 언어 튜토리얼 칼럼에서는 Go 언어로 MySQL 데이터베이스를 작동하는 방법을 소개합니다. ㅋㅋㅋ 데이터베이스를 운영할 때 데이터베이스 드라이버를 직접 사용하는 대신 프로그램은 데이터베이스 드라이버를 가져올 때 이 패키지의 이름에 밑줄을 표시하도록 설정합니다.

sql.Open() 메서드를 사용하여 데이터베이스에 연결합니다. open() 메서드의 첫 번째 매개 변수는 드라이버 이름이고 두 번째 매개 변수는 연결 문자열입니다. 사용자 이름:password@tcp(ip: 포트)/ 데이터베이스 이름? 인코딩 방법, 반환 값은 연결 개체 및 오류 정보입니다. 예: Go 언어로 MySQL 데이터베이스를 작동하는 방법

go get -u -v github.com/go-sql-driver/mysql
로그인 후 복사

데이터베이스 작업을 수행합니다.

데이터베이스의 주요 메소드는 다음과 같습니다.

Query는 Select 문과 같은 데이터베이스의 쿼리 작업을 실행하며 반환 데이터 유형은 *Rows

QueryRow 데이터베이스를 실행하면 최대 한 개의 데이터가 반환되며, 반환 데이터 유형은 *Row

Exec입니다. 실행 횟수는 무제한입니다. 삭제 작업과 같은 모든 행의 데이터베이스 문을 반환합니다.

PrePare는 데이터베이스 쿼리 작업을 준비하고 후속 쿼리 또는 Exec에 대해 *Stmt를 반환합니다. 이 Stmt는 여러 번 실행되거나 동시에 실행될 수 있습니다

Create table

exec 함수는 다음과 같습니다.

import _ "github.com/go-sql-driver/mysql"
로그인 후 복사

테이블을 생성하는 방법도 Exec()이고 매개 변수는 SQL 문이며 반환 값은 결과 집합 및 오류 메시지입니다.

결과에는 다음이 포함됩니다.

conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
defer conn.Close()//随手关闭数据库是个好习惯
로그인 후 복사

RowsAffected() 함수는 데이터베이스에서 SQL의 성공적인 실행에 의해 영향을 받는 행 수를 얻을 수 있습니다.

func (db *DB) Exec(query string, args ...interface{}) (Result, error)
로그인 후 복사

추가, 삭제, 수정 작업

Exec()은 추가, 삭제, 수정 작업문을 실행하는 데 사용됩니다. 반환 값은 결과 집합과 오류 정보입니다. 결과 집합을 실행하면 실행 결과 정보를 얻을 수 있습니다. 데이터 삽입을 예로 들면 코드는 다음과 같습니다.

type Result interface {
	LastInsertId() (int64, error)
	RowsAffected() (int64, error)
}
로그인 후 복사
Query 연산

사용된 함수는 Query()와 QueryRow입니다.

res ,err:= conn.Exec("create table user(name VARCHAR(40),pwd VARCHAR(40))")
beego.Info("create table result=",res.,err)
로그인 후 복사

QueryRow를 사용하여 단일 행 쿼리를 구현하면 쿼리 결과를 확인할 수 있습니다. SQL 문의 레코드입니다. Scan() 함수를 사용하여 결과의 ​​필드 값을 순차적으로 추출합니다.

Query를 사용하여 다중 행 데이터 쿼리를 구현하고 반환 값은 쿼리 결과 집합과 오류 정보입니다. 데이터는 다음과 Scan 기능을 통해 함께 가져옵니다

코드는 다음과 같습니다.

한 줄 쿼리:

res,_:=stmt.Exec("insert user(name,pwd) values (?,?)","tony","tony")
count,_:=res.RowsAffected()
this.Ctx.WriteString(strconv.Itoa(int(count)))
로그인 후 복사

다줄 쿼리:

func (db *DB) QueryRow(query string, args ...interface{}) *Row
func (db *DB) Query(query string, args ...interface{}) (*Rows, error)
로그인 후 복사

모든 코드

row:= conn.QueryRow(`select * from user where userName = "wyj"`)
var name,pwd string
row.Scan(&name,&pwd)
beego.Info(name,"------",pwd)
로그인 후 복사
더 많은 바둑 언어 지식을 원하시면 PHP 중국어 웹사이트go 언어 튜토리얼

칼럼을 주목하세요.

위 내용은 Go 언어로 MySQL 데이터베이스를 작동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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