Go语言连接MySQL

    科技2025-06-18  4

    很多语言都可以连接MySQL,像前面提到过的Java、Scala、python、pyspark等都可以连接MySQL,那么Go也一样可以连接。 话不多说,直接上代码:

    package main import( "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { //数据库信息 //用户名:密码@tcp(ip:端口号)/数据库名 con := "root:root@tcp(192.168.5.150:3306)/test" //连接数据库 db,err := sql.Open("mysql", con) //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
    Processed: 0.011, SQL: 8