go连接达梦数据库

DM 驱动包的配置

1. 安装 DM 驱动包

将提供的 DM 驱动包放在 GOPATH 的 src 目录下。驱动包位于 dmdbms/drivers/go/dm-go-driver.zip 解压到 GPPATH 安装路径的 src 下,如图所示:

请添加图片描述

2. 安装依赖包

所需 Go 依赖包有两个,textsnappy,从 Git 上把依赖包 clone 到本地,桌面右键【Git Bash Here】打开 Git 命令行窗口,依次下载 text 和 snappy 依赖。

git clone https://github.com/golang/text.git  D:/goDev/srcc/golang.org/x/text
git clone https://github.com/golang/snappy  D:/goDev/src/github.com/golang/snappy

3.go代码

//Sql语句
CREATE TABLE "SYSDBA"."DPI_DEMO"
(
"C1" INT,
"C2" CHAR(20),
"C3" VARCHAR(50),
"C4" NUMERIC(7,3),
"C5" TIMESTAMP(5),
"C6" CLOB,
"C7" BLOB) STORAGE(ON "MAIN", CLUSTERBTR) ;





/*该例程实现插入数据,修改数据,删除数据,数据查询等基本操作。*/
package main
// 引入相关包
import (
	"database/sql"
	_ "dm"
	"fmt"
	"time"
)
var db *sql.DB
var err error
func main() {
	driverName := "dm"
	dataSourceName := "dm://SYSDBA:SYSDBA@localhost:5236"
	if db, err = connect(driverName, dataSourceName); err != nil {
		fmt.Println(err)
		return
	}
	if err = insertTable(); err != nil {
		fmt.Println(err)
		return
	}
	if err = updateTable(); err != nil {
		fmt.Println(err)
		return
	}
	if err = queryTable(); err != nil {
		fmt.Println(err)
		return
	}
	if err = deleteTable(); err != nil {
		fmt.Println(err)
		return
	}
	if err = disconnect(); err != nil {
		fmt.Println(err)
		return
	}
}

func connect(driverName string, dataSourceName string) (*sql.DB, error) {
	var db *sql.DB
	var err error
	if db, err = sql.Open(driverName, dataSourceName); err != nil {
		return nil, err
	}
	if err = db.Ping(); err != nil {
		return nil, err
	}
	fmt.Printf("connect to \"%s\" succeed.\n", dataSourceName)
	return db, nil
}

func insertTable() error {

	var sql = `insert into "SYSDBA"."DPI_DEMO"("C1", "C2", "C3", "C4", "C5") VALUES(:1,:2,:3,:4,:5);`

	_, err = db.Exec(sql, "4", "123aaa", "中华书局1","0.123", time.Now())
	if err != nil {
		return err
	}
	fmt.Println("insertTable succeed")
	return nil
}

func updateTable() error {

	var sql = `update "SYSDBA"."DPI_DEMO" set "C4" = :1 where c1 = :2;`
	if _, err := db.Exec(sql, 222.125,4); err != nil {
		return err
	}
	fmt.Println("updateTable succeed")
	return nil
}

func queryTable() error {
	var C1 int
	var C2 string
	var C3 string
	var C4 string
	var C5 string

	var sql = `select "C1","C2","C3","C4","C5" from "SYSDBA"."DPI_DEMO";`
	rows, err := db.Query(sql)
	if err != nil {
		return err
	}
	defer rows.Close()
	fmt.Println("queryTable results:")
	for rows.Next() {
		if err = rows.Scan(&C1, &C2, &C3, &C4, &C5); err != nil {
			return err
		}
		fmt.Printf("%v %v %v %v %v\n", C1, C2, C3, C4, C5)
	}
	return nil
}

func deleteTable() error {
	var sql = `delete from "SYSDBA"."DPI_DEMO" where  c1 = :1;`
	if _, err := db.Exec(sql,4); err != nil {
		return err
	}
	fmt.Println("deleteTable succeed")
	return nil
}
/* 关闭数据库连接 */
func disconnect() error {
	if err := db.Close(); err != nil {
		fmt.Printf("db close failed: %s.\n", err)
		return err
	}
	fmt.Println("disconnect succeed")
	return nil
}

达梦支持

有任何问题请到技术社区反馈。

24小时免费服务热线:400 991 6599

达梦技术社区:https://eco.dameng.com

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux上连接达梦数据库,可以使用Go语言的database/sql包提供的接口来实现。通过引用了解到,DM数据库基于GO语言的database/sql包的接口进行开发。因此,需要先准备好以下环境: - DM数据库 8.0及以上版本 - Go语言 1.17.8版本 安装达梦数据库可以参考中的指南。DM数据库管理系统是一款具有完全自主知识产权的高性能数据库管理系统。DM8版本采用全新的体系架构,在性能、可靠性、海量数据处理和安全性方面进行了大量研发和改进工作,能同时满足OLTP和OLAP请求,并提升了产品的品质。 在CentOS 7环境下运行可能会报错"unrecognized relocation (0x2a) in section `.text'",可以参考中的Q&A寻找解决方案。 要连接达梦数据库,可以使用以下步骤: 1. 导入所需的包:import "database/sql"和import _ "github.com/dm/mysql" 2. 创建数据库连接:db, err := sql.Open("dm", "用户名:密码@地址:端口/数据库名") 3. 检查连接错误:if err != nil {panic(err)} 4. 执行SQL语句:使用db.Exec()方法执行所需的SQL语句,例如插入、更新、查询、删除等操作。 5. 关闭数据库连接:defer db.Close() 请注意,以上步骤仅供参考,具体的实现可能会根据你的需求和代码结构有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [linux下go语言连接达梦数据库](https://blog.csdn.net/qq_35349982/article/details/129800478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [linux下达梦数据库安装与使用](https://blog.csdn.net/xz060585/article/details/126647745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值