1、装置驱动

go get github.com/go-sql-driver/mysql

2、导入须要的库

import (    "database/sql"    "fmt"    _ "github.com/go-sql-driver/mysql")

3、连贯数据库

func main() {    //"用户名:明码@[连贯形式](主机名:端口号)/数据库名"    db, _ := sql.Open("mysql", "root:123456@(localhost)/world") // 设置连贯数据库的参数    defer db.Close()                                            //敞开数据库    err := db.Ping()                                            //连贯数据库    if err != nil {        fmt.Println("数据库连贯失败")                             //连贯失败        return    } else {        fmt.Println("数据库连贯胜利")                             //连贯胜利    }}

4、查问表

rows, _ := db.Query("select * from city") //获取city表所有数据    var ID, Population int    var Name, CountryCode, District string    for rows.Next() { //循环显示所有的数据        rows.Scan(&ID, &Name, &CountryCode, &District, &Population)        fmt.Println(ID, "--", Name, "--", CountryCode, "--", District, "--", Population)    }

查问截图

5、全副代码

package mainimport (    "database/sql"    "fmt"    _ "github.com/go-sql-driver/mysql")func main() {    //"用户名:明码@[连贯形式](主机名:端口号)/数据库名"    db, _ := sql.Open("mysql", "root:123456@(localhost)/world") // 设置连贯数据库的参数    defer db.Close()                                            //敞开数据库    err := db.Ping()                                            //连贯数据库    if err != nil {        fmt.Println("数据库连贯失败")        return    } else {        fmt.Println("数据库连贯胜利")    }    //多行查问    rows, _ := db.Query("select * from city") //获取所有数据    var ID, Population int    var Name, CountryCode, District string    for rows.Next() { //循环显示所有的数据        rows.Scan(&ID, &Name, &CountryCode, &District, &Population)        fmt.Println(ID, "--", Name, "--", CountryCode, "--", District, "--", Population)    }}

6、拓展

//操作一:执行数据操作语句    sql:="insert into stu values (2,'berry')"    result,_:=db.Exec(sql)      //执行SQL语句    n,_:=result.RowsAffected(); //获取受影响的记录数    fmt.Println("受影响的记录数是",n)//操作二:执行预处理    stu:=[2][2] string{{"3","ketty"},{"4","rose"}}    stmt,_:=db.Prepare("insert into stu values (?,?)")      //获取预处理语句对象    for _,s:=range stu{        stmt.Exec(s[0],s[1])            //调用预处理语句    }//操作三:单行查问    var id,name string    rows:=db.QueryRow("select * from stu where id=4")   //获取一行数据    rows.Scan(&id,&name)        //将rows中的数据存到id,name中    fmt.Println(id,"--",name)