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);

相关推荐
结衣结衣.3 分钟前
C++ 类和对象的初步介绍
java·开发语言·数据结构·c++·笔记·学习·算法
学习使我变快乐5 分钟前
C++:静态成员
开发语言·c++
TJKFYY5 分钟前
Java.数据结构.HashSet
java·开发语言·数据结构
杰哥在此14 分钟前
Python知识点:如何使用Multiprocessing进行并行任务管理
linux·开发语言·python·面试·编程
小白学大数据15 分钟前
User-Agent在WebMagic爬虫中的重要性
开发语言·爬虫·http
Code成立20 分钟前
1、深入理解Redis线程模型
数据库·redis·bootstrap
ROBIN__dyc21 分钟前
C语言基本概念
c语言·开发语言
缘友一世2 小时前
macos安装mongodb
数据库·mongodb·macos
学习使我变快乐2 小时前
C++:const成员
开发语言·c++
万事大吉CC3 小时前
mysql单表查询·3
数据库·mysql