2025-09-11
Go
00

目录

第一部分 概述
第二部分 环境准备
2.1 获取Go版本驱动
2.2 安装驱动包
2.2.1 解压驱动包
2.2.2 引入依赖
第三部分 连接测试

第一部分 概述

本文主要介绍在Go语言环境中如何对达梦数据库进行操作,官方相关材料地址如下:

第二部分 环境准备

2.1 获取Go版本驱动

达梦数据库安装完成后,在其安装目录的drivers目录下可以找到对应语言的驱动文件。

image.pnggo目录下的dm-go-driver.zip即为我们需要使用的驱动包。

提示

如果使用GORM进行数据库操作则可以使用达梦一起提供的gorm_v1_dialect.zipgorm_v2_dialect.zip,本文主要使用标准方式进行达梦数据库的连接操作,不对GORM进行展开

除上述获取方式外,笔者在达梦论坛中找到了一份分享链接,在其中也可以获取达梦数据库相关资源(Windows)

链接地址:https://eco.dameng.com/s/4IZA73B22P 提取码:erem

image.png

注意

本人不对上述链接的有效性以及内容安全性等进行保证,请谨慎选择下载

2.2 安装驱动包

驱动文件下载完成后,可以参考官网方式进行操作,在实际体验中,本着感觉官网方式较为繁琐,我么可以直接将下载的驱动作为项目依赖进行引入。

2.2.1 解压驱动包

解压驱动包至项目目录中,名称可以定义,笔者将其放在dm-go-driver中,目录结构如下

image.png

2.2.2 引入依赖

修改go.mod文件,添加达梦驱动包的依赖

module jianggujin.com//dm go 1.23.0 require ( dm v0.0.0 ) replace dm => ./dm-go-driver/dm

提示

需要特别注意上述配置中的配置信息

  • replace dm => ./dm-go-driver/dm:表示将dm依赖指向为本地目录./dm-go-driver/dm,这样包管理工具会直接使用本地文件,不会从网络上下载
  • dm v0.0.0:引入驱动包,版本号自定义指定

上述配置完成后,需要执行go mod tidy下载驱动包依赖的golang.org/x/textgithub.com/golang/snappy。最终配置参考如下:

module jianggujin.com//dm go 1.23.0 require ( dm v0.0.0 ) replace dm => ./dm-go-driver/dm require ( github.com/golang/snappy v0.0.1 // indirect golang.org/x/text v0.3.2 // indirect )

第三部分 连接测试

准备工作完成后,可以按照Go语言中标准的数据库操作方式进行验证,示例代码如下:

go
import ( "database/sql" _ "dm" "testing" ) func TestConnDm(t *testing.T) { db, err := sql.Open("dm", "连接串") if err != nil { t.Fatal(err) } defer db.Close() // 检测连通性 err = db.Ping() if err != nil { t.Fatal(err) } // 查询数据库版本信息 rows, err := db.Query("select * from v$version") if err != nil { t.Fatal(err) } defer rows.Close() for rows.Next() { var version string rows.Scan(&version) t.Log(version) } if rows.Err() != nil { t.Fatal(rows.Err()) } }

连接字符串可参考官网说明,常用格式如下:

dm://user:password@host:port[?propName1=propValue1][&propName2=propValue2]… dm://user:password@GroupName[?propName1=propValue1][&propName2=propValue2]… dm://user:password@GroupName?GroupName=(host1:port1,host2:port2,…)[&propName1=propValue1]… dm://user:password@host:port?dialName=anyName[&propName1=propValue1]…
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:蒋固金

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!