Go 언어 조작 MySQL
앞 에 써 주세요.
go 조작 MySQL소감
1.앞 에 쓴다
다음 기록 에는 당일 업무 에서 배 운 것 을 추가 로 기록 할 것 이다.이 는 기술,소프트 파워-소통,심리 상태,재 태 크,개인 사고 등 을 포함한다.
2.go 작업 MySQL
예 를 들 어 자바 작업 데이터베이스,프로 그래 밍 논 리 는 다음 과 같 습 니 다.드라이버 로 딩,연결 가 져 오기(connect),Statement||PrepareStatement 대상 생 성,sql 전송,exec or query,결과 집합 Resultset 가 져 오기,go 작업 MySQL 의 절차 도 다음 과 같 습 니 다.
메모:go 로드 드라이브 는 원 격 import 의 드라이버 github.com/go-sql-driver/mysql 에 의존 해 야 합 니 다.
다음 코드 에서 보 듯 이 기본 동작 인 CURD DbOperate.go 를 보 여 줍 니 다.
package DB
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
//
func connDb() *sql.DB {
db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/demo?charset=utf8")
checkErr(err)
return db
}
//insert
func DoInsert(sql string) {
db := connDb()
sql = "insert into test(name) value (?)"
stmt, err := db.Prepare(sql)
checkErr(err)
res, err := stmt.Exec("bofengliu")
checkErr(err)
fmt.Printf(" ,%v", res)
}
//delete
func DoDelete(id int) {
db := connDb()
sql := "delete from test where id = ?"
stmt, err := db.Prepare(sql)
checkErr(err)
res, err := stmt.Exec(id)
checkErr(err)
res = nil
fmt.Println(res)
}
//update
func DoUpdate(name string, id int) int64 {
db := connDb()
sql := "update test set name = ? where id = ?"
stmt, err := db.Prepare(sql)
checkErr(err)
res, err := stmt.Exec(name, id)
checkErr(err)
affect, err := res.RowsAffected()
fmt.Println(" ", affect)
return affect
}
func DoQueryByName(name string) {
sql := "select * from test where name = \"" + name + "\""
db := connDb()
res, err := db.Query(sql)
checkErr(err)
for res.Next() {
var id int
var name string
err := res.Scan(&id, &name)
checkErr(err)
fmt.Println(id)
fmt.Println(name)
}
}
func checkErr(err error) {
if err != nil {
panic(err.Error())
}
}
데이터 시트 구 조 는 다음 과 같다.
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 |
상기 코드 에서 import 를 통 해 github.com/go-sql-driver/mysql 을 도입 하 였 으 니 앞 에 가 있 는 지 주의 하 십시오.이 대표 적 으로 도 입 된 원 격 패 키 지 는 코드 에서 직접 사용 되 지 않 고 프로그램 에 의 해 간접 적 으로 불 러 옵 니 다.로 딩 위 치 는 db,err:=sql.Open("my sql","root:@tcp(127.0.0.1:330 6)/demo?charset=utf 8")입 니 다.
소스 코드 는 다음 과 같 습 니 다.
// , MySQL
func Open(driverName, dataSourceName string) (*DB, error) {
driversMu.RLock()
driveri, ok := drivers[driverName]
driversMu.RUnlock()
if !ok {
return nil, fmt.Errorf("sql: unknown driver %q (forgotten import?)", driverName)
}
if driverCtx, ok := driveri.(driver.DriverContext); ok {
connector, err := driverCtx.OpenConnector(dataSourceName)
if err != nil {
return nil, err
}
return OpenDB(connector), nil
}
return OpenDB(dsnConnector{dsn: dataSourceName, driver: driveri}), nil
}
테스트 를 통 해 문제 가 없습니다.이것 은 go 작업 MySQL 초기 체험 입 니 다.
3.소감
기 초 는 튼튼 해 야 하고 간단 한 것 일수 록 기록 이 필요 하 다.
끝나다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.