1. 程式人生 > >golang連線資料庫封裝包

golang連線資料庫封裝包

dbobj

這個包,封裝了golang與資料庫之間的介面,目前支援oracle,mysql資料庫

go get github.com/hzwy23/dbobj

使用方法:

  1. 如果選擇的是oracle資料庫,請按照go-oci8包的要求配置pkgconfig和oracle instantclient.
  2. oci8.pc在vendor/github.com/mattn/go-oci8中.請按照要求,修改oci8.pc檔案
  3. 如果選擇的是mysql或者mariadb,則忽略上邊2個步驟.
  4. 請設定環境變數.HBIGDATA_HOME.這個變數中建立目錄conf.然後將dbobj中的system.properties複製到conf中.
    export HBIGDATA_HOME=/opt/go/hcloud

建立目錄

    cd $HBIGDATA_HOME
    mkdir conf
    cp dbobj/system.properties ./conf   #將system.properties檔案複製到conf目錄中.

工程目錄樣式:

$HBIGDATA_HOME
            ----bin

            ----src

            --------github.com

            ------------hzwy23

            ----------------dbobj

            ----conf

            --------system.properties
  1. 在指定的配置檔案目錄中建立配置檔案,配置檔名稱指定為:system.properties,在檔案中輸入下面資訊:

4.1 mysql配置檔案

    DB.type=mysql
    DB.tns = "tcp(localhost:3306)/bigdata"
    DB.user = root
    DB.passwd= huang

4.2 oracle配置檔案

    DB.type=oracle
    DB.tns = "192.168.1.101:1521/orcl"
    DB.user = test
    DB.passwd= huang
  1. 系統啟動後,會預設自動對密碼進行加密.

例子

package main

import (
    "fmt"

    "github.com/hzwy23/dbobj"
)

func main() {

    rows, err := dbobj.Query("SELECT user_id,user_name FROM sys_user_info where user_id = ?", "admin")
    defer rows.Close()
    if err != nil {
        fmt.Println("query failed.")
        return
    }
    for rows.Next() {
        var userId string
        var userName string
        err = rows.Scan(&userId, &userName)
        if err != nil {
            fmt.Println("query failed. scan failed.")
            return
        }
        fmt.Println("user id is :", userId, "user name is :", userName)
    }
}