Connecting to GBase 8s Database Using Go on Linux

Linux is widely used in server environments due to its stability and security. Go, known for its simplicity and efficiency, has become one of the preferred languages for backend development. Connecting Go to a database can greatly enhance data processi…


This content originally appeared on DEV Community and was authored by Cong Li

Linux is widely used in server environments due to its stability and security. Go, known for its simplicity and efficiency, has become one of the preferred languages for backend development. Connecting Go to a database can greatly enhance data processing efficiency and performance. This article provides a step-by-step guide on how to connect to the GBase 8s database via ODBC using Go in a Linux environment, from setting up the environment to implementing the code.

1. Environment Setup: Install Go

First, we need to install the Go programming language on the Linux system. Download the latest Go package:

tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz

Add /usr/local/bin to your PATH environment variable so that you can use the go command.

2. Environment Setup: Install go-odbc

You will need to install unixodbc and gcc beforehand. The go-odbc package can be downloaded using git or as an offline package. Download it from: go-odbc on GitHub

After downloading go-odbc-master.zip, extract it and copy it to /usr/local/go/src. It is recommended to rename the folder from go-odbc-master to odbc. Navigate to /usr/local/go/src/odbc and execute make.bash to complete the installation.

3. Configure GBase ODBC

On a Linux system, you need to install unixODBC or iODBC to use the GBase 8s ODBC driver. We recommend using the unixODBC driver manager. The unixODBC package is typically provided along with the GBase 8s ODBC installation. Alternatively, you can download it from the official unixODBC website.

First, navigate to the system disk directory, for example:

/media/RHEL-6.6 Server.x86_64/Packages

Install the following packages:

  • unixODBC-2.2.14-1.x86_64.rpm: The data source manager for unixODBC
  • unixODBC-devel-2.2.14-1.x86_64.rpm: Development package for unixODBC

Image description

After successful installation, you can verify the unixODBC installation with the following command:

Image description

ODBC Configuration Files

vi /etc/odbcinst.ini
#GBase
[GBase]
Description     = ODBC for GBase
Driver          = /opt/gbase/lib/cli/iclit09b.so
Setup           = /opt/gbase/lib/cli/iclit09b.so
Driver64        = /opt/gbase/lib/cli/iclit09b.so
Setup64         = /opt/gbase/lib/cli/iclit09b.so
FileUsage       = 1

vi /etc/odbc.ini 
[test]
Driver  =/opt/gbase/lib/cli/iclit09b.so
SERVER  =gbaseserver2
UID     =gbasedbt
PWD     =gbasedbt
DATABASE        =db_utf8
PORT    =9488
CHARSET =UTF8
[ODBC]
;uncomment the below line for UNICODE connection
UNICODE=UCS-2

Now that the ODBC configuration is complete, you can use isql to verify whether ODBC has been configured successfully.

Set Environment Variables

export LD_LIBRARY_PATH=${GBASEDBTDIR}/lib:${GBASEDBTDIR}/lib/esql:${GBASEDBTDIR}/lib/cli

Verify GBase ODBC Configuration

To verify the ODBC configuration, use isql:

Image description

4. Code Test

Set the ODBCINI environment variable for the user running the Go program.

Example Go code to connect to the GBase 8s database:

package main

import (
    "fmt"
    "odbc"
)

func main() {
    fmt.Printf("%s\n", "Creating database connection")
    conn, _ := odbc.Connect("DSN=gbase14;UID=gbasedbt;PWD=gbasedbt")
    fmt.Printf("%s\n", "Connection successful")

    stmt1, _ := conn.ExecDirect("create table if not exists test(a int,b char(10))")
    stmt1.Execute()

    stmt2, _ := conn.ExecDirect("insert into test values(1,'Hello')")
    stmt2.Execute()

    stmt3, _ := conn.Prepare("select * from test")
    stmt3.Execute()

    rows, err := stmt3.FetchAll()
    for i, row := range rows {
        println(i, row.GetInt(0), row.GetString(1))
    }

    if err != nil {
        fmt.Println(err)
        return
    }

    stmt1.Close()
    stmt2.Close()
    stmt3.Close()
    conn.Close()

    return
}


This content originally appeared on DEV Community and was authored by Cong Li


Print Share Comment Cite Upload Translate Updates
APA

Cong Li | Sciencx (2024-09-18T08:50:18+00:00) Connecting to GBase 8s Database Using Go on Linux. Retrieved from https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/

MLA
" » Connecting to GBase 8s Database Using Go on Linux." Cong Li | Sciencx - Wednesday September 18, 2024, https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/
HARVARD
Cong Li | Sciencx Wednesday September 18, 2024 » Connecting to GBase 8s Database Using Go on Linux., viewed ,<https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/>
VANCOUVER
Cong Li | Sciencx - » Connecting to GBase 8s Database Using Go on Linux. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/
CHICAGO
" » Connecting to GBase 8s Database Using Go on Linux." Cong Li | Sciencx - Accessed . https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/
IEEE
" » Connecting to GBase 8s Database Using Go on Linux." Cong Li | Sciencx [Online]. Available: https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/. [Accessed: ]
rf:citation
» Connecting to GBase 8s Database Using Go on Linux | Cong Li | Sciencx | https://www.scien.cx/2024/09/18/connecting-to-gbase-8s-database-using-go-on-linux/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.