当使用go语言对数据进行连接时需要几部操作:
1.数据库侧:
需要允许远程连接,具体操作方法详见:本地主机连接阿里云数据库(自建数据库)排雷_秋为春的博客-CSDN博客
2.GO侧
1)需要引入go-sql-driver驱动
常见的引入方法有两种:
①通过命令行——前提是go的各个环境变量要配置好
go get -u github.com/go-sql-driver/mysql
②通过git进行复制
首先你的电脑要支持git这个命令,如果不支持需要下载安装Git下载地址给你放这了:
Git for Windows
下载安装后,直接把驱动Git到go path目录下:
git clone github.com/go-sql-driver/mysql
之后在go中使用用这个驱动:
import ( "database/sql" "fmt" _ "mysql" //引入 )
验证是否可以使用go对数据库进行操作:
首先创建一个数据库:
create database test;
以及一个表:
create table table( id int(4), name char(20) )
通过GO代码对数据库进行简单操作:
语法详解:
sql.open(驱动名,数据源dsn)(*DB,err) 数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名" 注意:open()在执行时不会真正的与数据库进行连接,只是设置连接数据库需要的参数 ping()方法才是连接数据库
代码操作:
package main import ( "database/sql" "fmt" _ "mysql" ) func main() { db, err := sql.Open("mysql", "root:xxx@(xxxx:3306)/test") checkErr(err) // insert stmt, err := db.Prepare("INSERT ta SET id=?,name=?") checkErr(err) res, err := stmt.Exec(1, "wang") checkErr(err) // update stmt, err = db.Prepare("update ta set name=? where id=?") checkErr(err) res, err = stmt.Exec("wang", 1) checkErr(err) affect, err := res.RowsAffected() checkErr(err) fmt.Println(affect) // query rows, err := db.Query("SELECT * FROM ta") checkErr(err) for rows.Next() { var uid int var username string err = rows.Scan(&uid, &username) checkErr(err) fmt.Println(uid) fmt.Println(username) } // delete stmt, err = db.Prepare("delete from ta where id=?") checkErr(err) res, err = stmt.Exec(1) checkErr(err) // query rows, err = db.Query("SELECT * FROM ta") checkErr(err) for rows.Next() { var uid int var username string err = rows.Scan(&uid, &username) checkErr(err) fmt.Println(uid) fmt.Println(username) } db.Close() } func checkErr(err error) { if err != nil { panic(err) } }
验证: