Golang連線SQLite、MySQL、Oracle資料庫
本文目錄
1.Go連線SQLite
1_1.SQLite推薦驅動
1_2.SQLite連線示例程式碼
2.Go連線MySQL
2_1.MySQL推薦驅動
2_2.MySQL連線示例程式碼
3.Go連線Oracle
3_1.Oracle推薦驅動以及準備事項
3_2.Oracle連線示例程式碼
說明:go語言連線資料庫不像Java那麼方便,本文分別介紹了連線三種典型的資料庫的驅動以及連線方法:小型,SQLite;中型,MySQL;大型,Oracle.
-1.Go連線SQLite
1.Go連線SQLite
回到頂部
1_1.SQLite推薦驅動
https://github.com/mattn/go-sqlite3
回到頂部
1_2.SQLite連線示例程式碼
示例程式碼如下:
複製程式碼
package main
import (
“database/sql”
“fmt”
_ “github.com/mattn/go-sqlite3”
“log”
“os”
)
type Users struct {
UserId int
Uname string
}
func main() {
os.Remove(“./foo.db”)
db, err := sql.Open("sqlite3", "./foo.db") if err != nil { log.Fatal(err) } defer db.Close() sql := `create table users (userId integer, uname text);` db.Exec(sql) sql = `insert into users(userId,uname) values(1,'Mike');` db.Exec(sql) sql = `insert into users(userId,uname) values(2,'John');` db.Exec(sql) rows, err := db.Query("select * from users") if err != nil { log.Fatal(err) } defer rows.Close() var users []Users = make([]Users, 0) for rows.Next() { var u Users rows.Scan(&u.UserId, &u.Uname) users = append(users, u) } fmt.Println(users)
}
複製程式碼
執行結果為:
[{1 Mike} {2 John}]
同時在當前目錄生成foo.db
-2.Go連線MySQL
2.Go連線MySQL
回到頂部
2_1.MySQL推薦驅動
https://github.com/Go-SQL-Driver/MySQL
回到頂部
2_2.MySQL連線示例程式碼
示例程式碼如下:
複製程式碼
package main
import (
“database/sql”
“fmt”
_ “github.com/go-sql-driver/mysql”
)
type Users struct {
UserId int
Uname string
}
func main() {
//db, err := sql.Open(“mysql”, “user:[email protected]/dbname”)
db, err := sql.Open(“mysql”, “root:[email protected]/test”)
if err != nil {
fmt.Println(“連線資料庫失敗”)
}
defer db.Close()
var users []Users = make([]Users, 0)
sqlStr := “select * from users”
rows, err := db.Query(sqlStr)
if err != nil {
fmt.Println(err)
} else {
for i := 0; rows.Next(); i++ {
var u Users
rows.Scan(&u.UserId, &u.Uname)
users = append(users, u)
}
fmt.Println(users)
}
}
複製程式碼
執行結果為:
[{1 Mike} {2 John}]
-3.Go連線Oracle
3.Go連線Oracle
回到頂部
3_1.Oracle推薦驅動以及準備事項
本人的資料庫相關配置是 版本11.2.0.1.0
Go版本是1.2
系統是WIN7旗艦版64位
按照下面的步驟最終連線上了oracle
①首先是先在機子上安裝git(這是必須的吧 作為go開發者)
②下載最新版的OCI儘管我用的是11.2的版本,但是試了n次才返現只有最新的12.1.0.1.0 才管用
下載地址是http://www.oracle.com/technetwork/cn/database/winx64soft-089540.html
如果這個地址不好使,可以再baidu是搜Instant Client Downloads for Microsoft Windows (x64)
需要下載instantclient-basic和instantclient-sdk兩個zip檔案
下載後將兩個包解壓,然後將sdk中的檔案sdk資料夾放到instantclient_12_1下,形成instantclient_12_1/sdk目錄級
然後將instantclient_12_1資料夾改名為instantclient_11_2並放到了C盤的跟目錄下
③下載MinGW最新版(實際上我用的不是最新的 用的是這個版本x86_64-4.9.0-posix-seh-rt_v3-rev2)
④到https://github.com/wendal/go-oci8下載pkg-config.exe和oci8.pc
注意先不要把這些原始碼git到計算機上,只是先下載pkg-config.exe和oci8.pc(在windows目錄下)
下載後進行以下操作
將pkg-config.exe複製到mingw\bin\下
將oci8.pc複製到mingw\lib\pkg-config\下(我的pkg-config是新建的因為原來沒有)
注意,oci8.pc 需要根據你下載的 oci進行修改。下面是我根據我下載的oci版本做的修改。
# Package Information for pkg-config
prefix=C:/instantclient_11_2
exec_prefix=C:/instantclient_11_2
libdir=${exec_prefix}
includedir=${prefix}/sdk/include/
Name: OCI
Description: Oracle database engine
Version: 11.2
Libs: -L${libdir} -loci
Libs.private:
Cflags: -I${includedir}
⑤修改系統環境變數,
新增
PATH=原有PATH;C:\instantclient_11_2;D:\MinGW\bin; (讀者根據自己的目錄變換一下)
PKG_CONFIG_PATH=D:\MinGW\lib\pkg-config(讀者根據自己的目錄變換一下)
⑥下載原始碼.
把https://github.com/wendal/go-oci8原始碼git到本地(這是go-oci庫 也就是連線oracle的驅動)
go get github.com/wendal/go-oci8
然後執行測試一下吧
回到頂部
3_2.Oracle連線示例程式碼
示例程式碼如下:
複製程式碼
package main
import (
“database/sql”
“fmt”
_ “github.com/wendal/go-oci8”
“log”
)
type Users struct {
UserId int
Uname string
}
func main() {
log.Println(“Oracle Driver Connecting….”)
//使用者名稱/密碼@例項名 如system/[email protected]、sys/[email protected]
db, err := sql.Open(“oci8”, “BOOKMAN/[email protected]”)
if err != nil {
log.Fatal(err)
panic(“資料庫連線失敗”)
} else {
defer db.Close()
var users []Users = make([]Users, 0)
rows, err := db.Query(“select * from users”)
if err != nil {
log.Fatal(err)
} else {
for rows.Next() {
var u Users
rows.Scan(&u.UserId, &u.Uname)
users = append(users, u)
}
fmt.Println(users)
defer rows.Close()
}
}
}
複製程式碼
執行過程比mysql和sqlite比起來非常緩慢,結果如下
2014/07/08 01:14:05 Oracle Driver Connecting….
[{1 Mike} {2 john}]
相關推薦
Golang連線SQLite、MySQL、Oracle資料庫
本文目錄 1.Go連線SQLite 1_1.SQLite推薦驅動 1_2.SQLite連線示例程式碼 2.Go連線MySQL 2_1.MySQL推薦驅動 2_2.MySQL連線示例程式碼 3.Go連線Oracle 3_1.Oracle推薦驅動以及
【Go語言】連線資料庫SQLite、MySQL、Oracle
本文目錄 說明: go語言連線資料庫不像Java那麼方便,本文分別介紹了連線三種典型的資料庫的驅動以及連線方法:小型,SQLite;中型,MySQL;大型,Oracle. 1.Go連線SQLit
jdbc連線oracle、mysql等主流資料庫的驅動類和url
jdbc連線oracle、mysql等主流資料庫的驅動類和url ----------------------------------------------------------- oracle driverClass:oracle.jdbc.driver.OracleDriver
SqlServer、MySql、Oracle資料庫監控系統
MoonMig Monitor 是一套由.Net 開發的資料庫監控程式,包含四個大元件: 1. 定時任務排程框架 該定時任務基於Quartz.Net進行自主開發的擴充套件框架,支援資料庫中配置排程方法,以及資料庫中更改排程計劃,採取的是Job==》JobSteps==》JobStepEvents方式進行架構的
Centos 7.2 安裝Apache、PHP、Mysql、連線Mysql資料庫的包、安裝VSFTP、並配置
一、安裝Apache、PHP、Mysql、連線Mysql資料庫的包: yum install httpd yum -y install php yum -y install php-fpm yum -y install php-mysql yum -y inst
SQLServer、Mysql、Oracle資料庫分割槽方案參考
第一部分:SQLServer分割槽表相關 SQLServer表分割槽比較特殊,表分割槽需要將索引列關聯到分割槽方案,分割槽方案又需要依賴分割槽函式來劃分資料到檔案組,而一個檔案組又可以包含多個檔案。所以一個合理的SQLServer分割槽,需要自行創檔案組、檔案
Oracle、Mysql、Sqlserver資料庫中查詢表中所有的欄位
有時候,我們需要獲取資料庫中一個表裡所有的欄位。對此,我進行了一些總結。 1.Mysql資料庫 select GROUP_CONCAT(COLUMN_NAME) from information_schema.COLUMNS where table_name = '表名' and table
HBase、MongoDB、MySQL、Oracle、Redis--nosql資料庫與關係資料庫對比
HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis,三大主流開源 NoSQL 資料庫的 PK 兩大主流傳統 SQL 資料庫 類別 HBase MongoDB MySQL Oracle Redis 描述 基於 Ap
Oracle、MYSQL、db2資料庫之間的不同以及使用
Mysql這種方式很初級最容易被人想到,Database與User分開是跟其他兩個的區別,用授權來關聯使用者和資料庫。jdbc的連線地址裡面,三者分別指定了Database、User、User(&Schema),Db2如果不單獨建立Schema則形式是跟Oracle一樣的。Db2的User只能是作業系
[筆記]Oracle、MySQL和DB2資料庫分頁查詢的實現
1.Oracle分頁查詢 SELECT * FROM ( SELECT tt.*,ROWNUM AS rowno FROM ( SELECT t.info_id,t.title,t.sou
Vertica的這些事—— SQL Server、Oracle、MySQL和Vertica資料庫常用函式對比
SQL Server、Oracle、MySQL和Vertica資料庫常用函式對比 Vertica資料庫是HP公司新收購的用於BI方面的資料庫。 絕對值 S:select abs(-1) value O:select abs(-1) value f
Embedded資料庫比較:Access、SQLite、HSQLDB、Sybase、MySQL、DB4O
引自:http://www.cnblogs.com/kenkofox/archive/2011/03/18/1988422.html 一、Access 資料型別有些另類,而且密碼太容易被攻破,效能不高,只能用在Windows程式上。 一般說來,單個表不超過1
SQLite與MySql、Oracle的使用區別(C#)
1.引數 SQLiteParameter p = new SQLiteParameter(":project_id", DbType.String); p.Value = project_id; MySqlParameter p = new MySqlParameter
各種資料庫(oracle、mysql、sqlserver等)在Spring中資料來源的配置和JDBC驅動包
在開發基於資料庫的應用系統時,需要在專案中進行資料來源的配置來為資料 庫的操作取得資料庫連線。配置不同資料庫的資料來源的方法大體上都是相同的,不同的只是不同資料庫的JDBC驅動類和連線URL以及相應的資料庫使用者名稱和密 碼不同。下面列出8中常用的資料庫的資料庫資料來源配置
獲取資料庫中包含某個關鍵詞的所有表名(Sqlserver、MySQL、Oracle)
1.sqlserver select name as table_name from sys.objects where type='U' and name like '%關鍵詞%' 2.mysql S
Sqlserver、Mysql、Oracle各自的默認端口號
edr drive mic odin word host base nco mysql mysql 默認端口號為:3306URL:jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=
SQLite與MySQL、SQLServer等異構數據庫之間的數據同步
高效 配置 數據同步 自動 技術分享 請求 roi bsp 服務器 SQLite DBSync是開源嵌入式數據庫SQLite的數據同步引擎,實現了SQLite與SQLite數據庫之間以及SQLite與異構數據庫(Oracle、MySQL、SQLServer)之間的增量的、雙
Oracle、MySql、SqlServer三者查詢語句對比
Oracle jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:test 分頁 select * from (select t.*,rownum as
Oracle、SQL Server、MySQL、DB2、PostgreSQL、Sybase預設資訊
Oracle預設埠號為:1521 URL:jdbc:oracle:thin:@localhost :1521:orcl Driver:oracle.jdbc.driver.OracleDriver SQL Server預設埠號為:1433 URL:jdbc:sqls
sqlserver、mysql、oracle各自的預設埠號
sqlserver預設埠號為:1433 URL:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname" DRIVERNAME:"com.microsoft.jdbc.sqlserver.SQLServerDriver";