栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

GO连接数据库--踩坑(超详细)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GO连接数据库--踩坑(超详细)

当使用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)
	}
}

验证:

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号