golang通过go-aci适配神通数据库

1. go-aci简介

go-aci是神通数据库基于ACI(兼容Oracle的OCI)开发的go语言开发接口,因此运行时需要依赖ACI驱动和ACI库的头文件。支持各种数据类型的读写、支持参数绑定、支持游标范围等操作。

2. Linux部署步骤

2.1. Go安装:

版本:1.9以上

Go安装目录:/usr/lib/go

2.2. 编译环境:

版本:gcc和g++ 4.8以上

2.3. go-aci文件拷贝

将神通go-aci驱动拷贝到go的src目录,比如:/usr/lib/go/src,如下:

2.4. go-aci文件配置

  1. 更新aci的头文件和aci库文件:

    头文件:go-aci自带aci头文件,默认情况下不用更新,aci头文件可从数据库安装目录: S Z O S C A R H O M E / a c i / i n c l u d e 获取。 A c i 库文件: a c i 库文件在 g o − a c i 目录中,需要根据部署平台从数据库中的安装目录中拷贝 SZ_OSCAR_HOME/aci/include获取。 Aci库文件:aci库文件在go-aci目录中,需要根据部署平台从数据库中的安装目录中拷贝 SZOSCARHOME/aci/include获取。Aci库文件:aci库文件在go−aci目录中,需要根据部署平台从数据库中的安装目录中拷贝SZ_OSCAR_HOME/aci/,比如在arm平台下,

    $SZ_OSCAR_HOME/aci/arm64/libaci.so文件拷贝到/usr/lib/go/src/go-aci目录下。

  2. 修改aci.pc文件:

    aci.pc文件中记录的是编译go-aci依赖头文件和aci库文件的路径,将其修改为对应目录,比如:

2.5. go-aci编译

设置环境变量:PKG_CONFIG_PATH,export PKG_CONFIG_PATH=go-aci , go-aci为go-aci代码的路径,比如export PKG_CONFIG_PATH=/usr/lib/go/src/go-aci

终端中cd /usr/lib/go/src/,执行go build go-aci,确保编译无错,如图:

2.6. go-aci测试

到/usr/lib/go/src/go-aci/test目录下,编译test.go : go build -o test_goaci test.go,如图

执行test_goaci:./test_goaci sysdba/szoscar55@localhost:2003/osrdb

备注:链接数据库的用户名、密码、ip和端口、实例名称都是可以更改的,执行前在数据库中建表:create table test( a int ,b text);

3) 注意事项:

因为go-aci依赖的是神通aci库,因此在go调用go-aci程序时,需要确认aci库所在的路径是否系统运行时找到,如果没有可以将aci库与运行程序放在同一目录即可。

3. Win部署步骤

3.1. mingw-w64安装

mingw能提供在windows环境下的gcc和g++编译换环境,安装方式如下:

下载mingw-w64-install.exe,可在线安装,下载链接:
https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe

运行:mingw-w64-install.exe,选择x86_64,直接下一步

选择安装路径:比如c:\mingw-w64

等待安装:

安装完成:

将c:\mingw-w64\mingw64\bin目录添加到系统path环境变量中:

备注:对于离线环境,可以将安装好mingw-w64的整个文件拷贝到无网环境,通用需要配置path路径即可。

安装是否成功验证,开启新的cmd窗口,执行gcc ,提示如下即可:

3.2. Go SDK安装

Go sdk要求1.9以上,下载链接:https://dl.google.com/go/go1.14.1.windows-amd64.msi

然后进行安装


将c:\Go\bin\bin目录添加到系统path环境变量中:

验证是否安装成功,开启新cmd终端,执行go,如图:

3.3. pkg-config依赖安装

下载pkg-config,地址http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip

将下载的pkg-config放置到c:\go\bin目录下。

pkg-config会依赖libglib-2.0-0.dll库,需要下载glib,链接如下,将libglib-2.0-0.dll与pkg-config.exe都放置在c:\go\bin目录下。
http://ftp.acc.umu.se/pub/gnome/binaries/win64/glib/2.18/glib_2.18.4-1_win64.zip

3.4. go-aci配置

将go-aci源码拷贝到go目录下,比如C:\Go\src目录下:

修改go-aci目录下的aci.pc文件如下,路径需要和安装路径一致:

开启一个cmd,然后进入到C:\Go\src\go-aci目录下,依次执行,没有报错即为正确

set PKG_CONFIG_PATH=%cd%

go build go-aci

如图:

3.5. test程序

cmd中进入到C:\Go\src\go-aci\test目录,执行

go build test.go

备注:需要在数据库中创建test表:create table test( a int ,b text);

相关推荐
九皇叔叔1 小时前
【9】PostgreSQL 之 vacuum 死元组清理
数据库·postgresql
L_autinue_Star1 小时前
手写vector容器:C++模板实战指南(从0到1掌握泛型编程)
java·c语言·开发语言·c++·学习·stl
风雅的远行者1 小时前
mysql互为主从失效,重新同步
数据库·mysql
元气小嘉1 小时前
前端技术小结
开发语言·前端·javascript·vue.js·人工智能
励志的大鹰哥2 小时前
V少JS基础班之第七弹
开发语言·javascript·ecmascript
AI360labs_atyun2 小时前
Java在AI时代的演进与应用:一个务实的视角
java·开发语言·人工智能·科技·学习·ai
宇钶宇夕2 小时前
S7-1200 系列 PLC 中 SCL 语言的 PEEK 和 POKE 指令使用详解
运维·服务器·数据库·程序人生·自动化
绿蚁新亭2 小时前
Spring的事务控制——学习历程
数据库·学习·spring
凤年徐3 小时前
【数据结构与算法】203.移除链表元素(LeetCode)图文详解
c语言·开发语言·数据结构·算法·leetcode·链表·刷题
nbsaas-boot3 小时前
多租户架构下的多线程处理实践指南
java·开发语言·spring