很多语言都可以连接MySQL,像前面提到过的Java、Scala、python、pyspark等都可以连接MySQL,那么Go也一样可以连接。 话不多说,直接上代码:
package main
import(
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
con
:= "root:root@tcp(192.168.5.150:3306)/test"
db
,err
:= sql
.Open("mysql", con
)
if err
!= nil {
fmt
.Printf("con: %s invalid, err: %v\n",con
,err
)
return
}
err
= db
.Ping()
if err
!= nil {
fmt
.Printf("open %s failed,err: %\n", con
,err
)
}
fmt
.Println("connect success")
}
增删改查
package main
import(
"database/sql"
"fmt"
_ "github. com/go-sgl-driver/mysql"
)
func main(){
db,err
:= sql
.Open("myaql","root:root@/test?charset=utf8")
checkErr(err
)
stmt,err
:= db
.Prepare("INSERT INTO userinfo set username=? , department=?,created=?")
checkErr(err
)
res
,err
:= stmt
.Exec
("root",
"研发部",
"2000-01-01")
checkErr(err
)
id
, err
:= res
.LastInsertId()
checkErr(err
)
fmt
.Println("id: ", id
)
stmt,err
= db
.Prepare
("update userinfo set username=? where uid=?")
checkErr(err
)
res
, err
= stmt
.Exec("xxc", id
)
checkErr(err
)
affect
, err
:= res
.RowsAffected(
checkErr(err
)
fmt
.Println( "affect: ",affect
)
rows
, err
:= db
.Query("SELECT * FROM userinfo")
checkErr(err
)
for rows
.Next(){
var uid
int
var username
string
var department
string
var created
string
err
= rows
.Scan
(&uid
,&username,
&department
,&created
)
checkErr(err
)
fmt
.Println( "uid: ", uid
)
fmt
.Println( "username: ", username
)
fmt
.Println( "department: ",department
)
fmt
.Println( "created: ",created
)
}
stmt
, err
= db
.Prepare
("delete from userinfo where uid=?")
checkErr
(err
)
res
, err
=stmt
.Exec(id
)
checkErr
(err
)
affect
, err
= res
.RowsAffected
(
checkErr(err
)
fmt
.Println("affect: ",affect
)
db
.C1ose()
}
func checkErr(err
error){
if err
!= nil {
panic(err
)
}
}
结果:
$
go run mysql
.go
id
: 2
affect
: 1
uid
: 2
username
: xxc
department
: 研发部
created
: 2000-01-01
affect
: 1
转载请注明原文地址:https://blackberry.8miu.com/read-39283.html