go语言连接mysql go语言连接oracle

GO语言(三十):访问关系型数据库(上)本教程介绍了使用 Godatabase/sql及其标准库中的包访问关系数据库的基础知识 。
您将使用的database/sql包包括用于连接数据库、执行事务、取消正在进行的操作等的类型和函数 。
在本教程中,您将创建一个数据库,然后编写代码来访问该数据库 。您的示例项目将是有关老式爵士乐唱片的数据存储库 。
首先 , 为您要编写的代码创建一个文件夹 。
1、打开命令提示符并切换到您的主目录 。
在 Linux 或 Mac 上:
在 Windows 上:
2、在命令提示符下,为您的代码创建一个名为 data-access 的目录 。
3、创建一个模块 , 您可以在其中管理将在本教程中添加的依赖项 。
运行go mod init命令,为其提供新代码的模块路径 。
此命令创建一个 go.mod 文件,您添加的依赖项将在其中列出以供跟踪 。
注意:在实际开发中,您会指定一个更符合您自己需求的模块路径 。有关更多信息,请参阅一下文章 。
GO语言(二十五):管理依赖项(上)
GO语言(二十六):管理依赖项(中)
GO语言(二十七):管理依赖项(下)
接下来 , 您将创建一个数据库 。
在此步骤中 , 您将创建要使用的数据库 。您将使用 DBMS 本身的 CLI 创建数据库和表,以及添加数据 。
您将创建一个数据库 , 其中包含有关黑胶唱片上的老式爵士乐录音的数据 。
这里的代码使用MySQL CLI,但大多数 DBMS 都有自己的 CLI,具有类似的功能 。
1、打开一个新的命令提示符 。
在命令行,登录到您的 DBMS,如下面的 MySQL 示例所示 。
2、在mysql命令提示符下,创建一个数据库 。
3、切到您刚刚创建的数据库,以便您可以添加表 。
4、在文本编辑器的 data-access 文件夹中,创建一个名为 create-tables.sql 的文件来保存用于添加表的 SQL 脚本 。
将以下 SQL 代码粘贴到文件中,然后保存文件 。
在此 SQL 代码中:
(1)删除名为album表 。首先执行此命令可以让您更轻松地稍后重新运行脚本 。
(2)创建一个album包含四列的表:title、artist和price 。每行的id值由 DBMS 自动创建 。
(3)添加带有值的四行 。
5、在mysql命令提示符下,运行您刚刚创建的脚本 。
您将使用以下形式的source命令:
6、在 DBMS 命令提示符处 , 使用SELECT语句来验证您是否已成功创建包含数据的表 。
接下来,您将编写一些 Go 代码进行连接,以便进行查询 。
现在你已经有了一个包含一些数据的数据库 , 开始你的 Go 代码 。
找到并导入一个数据库驱动程序,该驱动程序会将您通过database/sql包中的函数发出的请求转换为数据库可以理解的请求 。
1、在您的浏览器中,访问SQLDrivers wiki 页面以识别您可以使用的驱动程序 。
2、使用页面上的列表来识别您将使用的驱动程序 。为了在本教程中访问 MySQL,您将使用 Go-MySQL-Driver 。
3、请注意驱动程序的包名称 - 此处为github.com/go-sql-driver/mysql.
4、使用您的文本编辑器 , 创建一个用于编写 Go 代码的文件 , 并将该文件作为 main.go 保存在您之前创建的数据访问目录中 。
5、进入main.go , 粘贴以下代码导入驱动包 。
在此代码中:
(1)将您的代码添加到main包中 , 以便您可以独立执行它 。
(2)导入 MySQL 驱动程序github.com/go-sql-driver/mysql 。
导入驱动程序后 , 您将开始编写代码以访问数据库 。
现在编写一些 Go 代码 , 让您使用数据库句柄访问数据库 。
您将使用指向结构的指针sql.DB , 它表示对特定数据库的访问 。
编写代码
1、进入 main.go , 在import您刚刚添加的代码下方 , 粘贴以下 Go 代码以创建数据库句柄 。
在此代码中:
(3)使用 MySQL 驱动程序Config和FormatDSN类型以收集连接属性并将它们格式化为连接字符串的 DSN 。
该Config结构使代码比连接字符串更容易阅读 。
(4)调用sql.Open 初始化db变量,传递 FormatDSN 。
(5)检查来自 的错误sql.Open 。例如 , 如果您的数据库连接细节格式不正确,它可能会失败 。
为了简化代码,您调用log.Fatal结束执行并将错误打印到控制台 。在生产代码中,您会希望以更优雅的方式处理错误 。
(6)调用DB.Ping以确认连接到数据库有效 。在运行时 , sql.Open可能不会立即连接,具体取决于驱动程序 。您在Ping此处使用以确认 database/sql包可以在需要时连接 。
(7)检查来自Ping的错误,以防连接失败 。
(8)Ping如果连接成功,则打印一条消息 。
文件的顶部现在应该如下所示:
3、保存 main.go 。
1、开始跟踪 MySQL 驱动程序模块作为依赖项 。
使用go get 添加 github.com/go-sql-driver/mysql 模块作为您自己模块的依赖项 。使用点参数表示“获取当前目录中代码的依赖项” 。
2、在命令提示符下,设置Go 程序使用的DBUSER和DBPASS环境变量 。
在 Linux 或 Mac 上:
在 Windows 上:
3、在包含 main.go 的目录中的命令行中,通过键入go run来运行代码 。
连接成功了!
接下来,您将查询一些数据 。
go 连接mysql 8.0mysql8 为了提升安全性将默认的权限校验插件由mysql_native_password变更为caching_sha2_password,但是第三方链接库更新没有完全完成跟进 。例如go在连接mysql8.0时会报错误“this authentication plugin is not supported”,根本原因在于go-sql-driver不支持新的校验方式 。目前有三个解决方案:
go 链接mysql 8.0
go 连接mysql的驱动有哪些下载安装
到,下载1.2版本go安装包,你可以选择MSI文件安装也可以下载ZIP压缩包,双击你所下载的MSI文件,然后根据安装引导一路下一步,一般默认安装在c:\Go目录
2
自动设置环境变量
安装引导会把C:\Go\bin设置到你的系统换环境PATH上 , 你需要关闭所有打开的CMD命令窗口,再次打开,输入go,出现帮助信息,出现如图信息说明你安装成功
3
ZIP包安装
下载ZIP文件并解压到所选目录(建议目录 C:\Go),如果你不解压到C:\Go目录,你必须设置GOROOT环境变量,添加C:\Go\bin 到PATH环境变量,如果别的目录则添为%GOROOT%\bin;
4
测试安装
在任何目录编写一个go文件,命名为hello.go 。
package main
import "fmt"
func main(){
fmt.Printf("Hello 百度回享")
}
打开CMD命令窗口,cd到hello.go目录,运行go run hello.go
5
下载mysql驱动包
使用github.com/go-sql-driver/mysql这个驱动包,打开cmd窗口输入:go get github.com/go-sql-driver/mysql,会下载到你的GOPATH路径的src 下
6
代码如下:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func testSelect() {
db, err := sql.Open("mysql", "root:111111@tcp(127.0.0.1:3333)/showme?charset=utf8")
if err != nil {
fmt.Printf("connect err")
}
rows, err1 := db.Query("select userid,username from tb_user limit 0,5")
if err1 != nil {
fmt.Println(err1.Error())
return
}
defer rows.Close()
fmt.Println("")
cols, _ := rows.Columns()
for i := range cols {
fmt.Print(cols[i])
fmt.Print("\t")
}
fmt.Println("")
var userid int
var username string
for rows.Next() {
if err := rows.Scan(userid, username); err == nil {
fmt.Print(userid)
fmt.Print("\t")
fmt.Print(username)
fmt.Print("\t\r\n")
}
}
}
func main() {
testSelect()
}
Go语言使用gorm对MySQL进行性能测试之前写过了Go语言gorm框架MySQL实践 , 其中对gorm框架在操作MySQL的各种基础实践,下面分享一下如何使用gorm框架对MySQL直接进行性能测试的简单实践 。
这里我使用了一个原始的Go语言版本的FunTester测试框架,现在只有一个基本的方法,实在是因为Go语言特性太强了 。框架设计的主要思路之一就是利用Go语言的闭包和方法参数特性,将一个func()当做性能测试的主题,通过不断运行这个func()来实现性能测试 。当然还有另外一个思路就是运行一个多线程任务类,类似Java版本的com.funtester.base.constaint.ThreadBase抽象类 , 这样可以设置一些类的属性,绑定一些测试资源 , 适配更多的测试场景 。
下面演示select的性能测试,这里我用了随机ID查询的场景 。
这里我使用从35开始递增的ID进行删除 。
这里使用了select的用例部分,随机ID,然后更新name字段,随机10个长度的字符串 。
这里用到了FunTester字段都是随机生成 。
到这里可以看出,性能测试框架用到的都是gorm框架的基础API使用,这里MySQL连接池的管理工作完全交给了gorm框架完成,看资料说非常牛逼 , 我们只需要设置几个参数 。这个使用体现很像HttpClient设置HTTP连接池类似,这里我们也可以看出这些优秀的框架使用起来都是非常简单的 。
PS:关于gorm的基础使用的请参考上一期的文章Go语言gorm框架MySQL实践 。
如何测试go语言连接mysql成功golang本身没有提供连接MySQLgo语言连接mysql的驱动go语言连接mysql,但是定义go语言连接mysql了标准接口供第三方开发驱动 。
这里连接mysql可以使用第三方库go语言连接mysql,第三方库推荐使用这个驱动go语言连接mysql,更新维护都比较好 。
【go语言连接mysql go语言连接oracle】关于go语言连接mysql和go语言连接oracle的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读