【數據庫】GaussDB的數據庫驅動

前言

今天我們來看gaussDB 100的開發。
GaussDB 數據庫驅動

一、驅動

什麼是驅動?

數據庫驅動應用程序和數據庫存儲之間的一種接口,數據庫廠商爲了某一種開發語言環境(比如Java,C)能夠實現數據庫調用而開發的類似翻譯員功能的程序,將複雜的數據庫操作與通信抽象成爲了當前開發語言的訪問接口。

GaussDB 100同時支持JDBCODBC等數據庫驅動。
在這裏插入圖片描述

二、JDBC

JDBC定義:
JDBC(Java Database Connectivity,Java數據庫連接),一種用於執行SQL語句的Java API,可爲多種關係數據庫提供統一訪問接口,應用程序可基於它操作數據。

JDBC開發應用程序的流程如圖
在這裏插入圖片描述

  1. JDBC安裝配置
  • 配置JDBC包
    從support網站下下載驅動jar包。解壓後配置在eclipse中

    jdbc包名: com.huawei.gauss.jdbc.ZenithDriver.jar

  • 加載驅動
    在創建數據庫連接之前,需要加載數據庫驅動類,加載羣東的方法:
    在代碼中隱含裝載:Class.forName(“com.huawei.gauss.jdbc.ZenithDriver”)

  • 連接數據庫
    遠程接入數據庫之前,需要在配置文件zengine.ini中設置LSNR_IP和LSNR_PORT偵聽的IP地址和端口號

    在使用JDBC創建數據庫連接,使用以下函數

DriverManager.getConnection(String url, String user, String password);

數據庫連接參數

參數 描述
url 數據庫連接描述符格式如下:jdbc:zenith:@ip:port[?key=value[&key=value]…]
user 數據庫用戶
password 數據庫用戶的密碼

url說明:
ip爲數據庫服務器名稱。port爲數據庫服務器端口。url連接屬性通過&符號進行分割。每個屬性是一個key=value對。

  1. JDBC接口

JDBC常用接口:

接口名稱 功能簡述
java.sql.Connection 數據庫連接接口
java.sql.DatabaseMetaData 數據庫對象定義接口
java.sql.Driver 數據庫驅動接口
java.sql.PreparedStatement 預處理語句接口
java.sql.ResultSet 執行結果集接口
java.sql.ResultSetMetaData 對ResultSet對象相關信息的具體描述
java.sql.Statement SQL語句接口
java.sql.CallableStatement SQL語句接口,主要用於執行存儲過程
java.sql.Blob Blob接口,主要用於綁定或獲取數據庫Blob字段
java.sql.Clob Clob接口,主要用於綁定或獲取數據庫Clob字段

三、ODBC

ODBC定義:
ODBC(Open Database Connectivity,開放數據庫互連),是由Microsoft公司基於X/OPEN CLI提出的用於訪問數據庫的應用程序編程接口。

ODBC開發應用程序的流程圖:
在這裏插入圖片描述

應用程序通過ODBC提供的API與數據庫進行交互,在避免了應用程序直接操作數據庫系統的同時,增強了應用程序的可移植性、擴展性和可維護性。

  1. ODBC安裝配置
  • 獲取unixODBC源碼包
    參考地址:http://www.unixodbc.org/,下載文件unixODBC-2.3.7.tar.gz或以上版本

  • 編譯安裝unixODBC
    在編譯安裝unixODBC過程中,unixODBC默認安裝到“/usr/local”目錄下,生成數據源文件到 “/usr/local/etc”目錄下,庫文件生成在“/usr/local/lib”目錄。

tar -zxvf unixODBC-2.3.7.tar.gz
	cd unixODBC-2.3.7
	./configure --enable-gui=no
	make install
  • 配置ODBC驅動文件
    GaussDB 100 ODBC驅動包” GAUSSDB100-VxxxRxxxCxx-CLIENT-ODBC-SUSE11SP3-64bit.tar.gz”

    解壓到ODBC驅動目錄”/usr/local/lib”下

tar -zxvf GAUSSDB100-VxxxRxxxCxx-CLIENT-ODBC-SUSE11SP3-64bit.tar.gz
  • 在“/usr/local/etc/odbcinst.ini”文件中追加以下內容。
	[GaussDB]          驅動器名稱,對應數據源DSN中的驅動名 
	Driver64=/usr/local/odbc/lib/libzeodbc.so                 驅動動態庫的路徑
	setup=/usr/local/lib/libzeodbc.so                驅動安裝路徑,與Driver64中動態庫的路徑一致  
  • 在“/usr/local/etc/odbc.ini ”文件中追加以下內容。
	[zenith]            數據源名稱
	Driver=DRIVER_N            驅動名,對應odbcinst.ini中的DriverName
	Servername=192.168.0.1   數據庫服務器的IP地址
	Port=1888             數據庫偵聽端口
	
  • 配置環境變量
    export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH 
	export ODBCSYSINI=/usr/local/etc 
	export ODBCINI=/usr/local/etc/odbc.ini
  1. ODBC常用接口
接口名稱 功能簡述
SQLAllocHandle 申請環境、連接、語句句柄
SQLFreeHandle 用於釋放ODBC的句柄
SQLSetEnvAttr 用於設置ODBC的環境句柄屬性
SQLSetConnectAttr 用於設置ODBC的鏈接句柄屬性
SQLSetStmtAttr 用於設置ODBC的執行句柄屬性
SQLConnect 使用鏈接句柄鏈接數據源
SQLDisconnect 斷開和數據源的鏈接
SQLPrepare 準備要執行的SQL語句
SQLBindParameter 往準備好SQL的執行句柄綁定參數
SQLBindCol 綁定結果集列存放緩衝區
SQLExecute 執行SQL語句
SQLFetch 獲取下一行結果

四、其他驅動

GaussDB 100除了支持基於JDBC和ODBC驅動的開發,還支持基於GSC(C-API),PythonGO驅動的開發

  1. GSC(C-API):依賴的庫爲libzeclient.so,頭文件爲gsc.h。
  2. Go驅動:Go驅動以源碼的形式發佈,上層應用將代碼import到應用項目中,和應用程序編譯到一起使用。從文件層面看Go驅動分爲三個部分:Go API、C驅動庫和C頭文件
  3. python驅動動態庫:pyzenith.so。使用Python驅動連接數據庫時,通過調用pyzenith.connect方法來獲取Connection建立連接

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章