bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

postgresql驅(qū)動(dòng)的簡(jiǎn)單介紹

go語言postgresql數(shù)據(jù)庫驅(qū)動(dòng)怎么用

PostgreSQL和MySQL比較,它更加龐大一點(diǎn),因?yàn)樗怯脕硖娲鶲racle而設(shè)計(jì)的。所以在企業(yè)應(yīng)用中采用PostgreSQL是一個(gè)明智的選擇。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺(tái)小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了墨脫免費(fèi)建站歡迎大家使用!

現(xiàn)在MySQL被Oracle收購之后,有傳聞Oracle正在逐步的封閉MySQL,,鑒于此,將來我們也許會(huì)選擇PostgreSQL而不是MySQL作為項(xiàng)目的后端數(shù)據(jù)庫。

1、驅(qū)動(dòng)

Go實(shí)現(xiàn)的支持PostgreSQL的驅(qū)動(dòng)也很多,因?yàn)閲?guó)外很多人在開發(fā)中使用了這個(gè)數(shù)據(jù)庫。

支持database/sql驅(qū)動(dòng),純Go寫的

支持database/sql驅(qū)動(dòng),純Go寫的

支持database/sql驅(qū)動(dòng),純Go寫的

在下面的示例中我采用了第一個(gè)驅(qū)動(dòng),因?yàn)樗壳笆褂玫娜俗疃啵趃ithub上也比較活躍。

2、實(shí)例代碼

數(shù)據(jù)庫建表語句:

復(fù)制代碼

CREATE TABLE userinfo

(

uid serial NOT NULL,

username character varying(100) NOT NULL,

departname character varying(500) NOT NULL,

Created date,

CONSTRAINT userinfo_pkey PRIMARY KEY (uid)

)

WITH (OIDS=FALSE);

CREATE TABLE userdeatail

(

uid integer,

intro character varying(100),

profile character varying(100)

)

WITH(OIDS=FALSE);

復(fù)制代碼

看下面這個(gè)Go如何操作數(shù)據(jù)庫表數(shù)據(jù):增刪改查

復(fù)制代碼

package main

import (

"database/sql"

"fmt"

_ "github.com/bmizerany/pq"

)

func main() {

db, err := sql.Open("postgres", "user=astaxie password=astaxie dbname=test sslmode=disable")

checkErr(err)

//插入數(shù)據(jù)

stmt, err := db.Prepare("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) RETURNING uid")

checkErr(err)

res, err := stmt.Exec("astaxie", "研發(fā)部門", "2012-12-09")

checkErr(err)

//pg不支持這個(gè)函數(shù),因?yàn)樗麤]有類似MySQL的自增ID

id, err := res.LastInsertId()

checkErr(err)

fmt.Println(id)

//更新數(shù)據(jù)

stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")

checkErr(err)

res, err = stmt.Exec("astaxieupdate", 1)

checkErr(err)

affect, err := res.RowsAffected()

checkErr(err)

fmt.Println(affect)

//查詢數(shù)據(jù)

rows, err := db.Query("SELECT * FROM userinfo")

checkErr(err)

for rows.Next() {

var uid int

var username string

var department string

var created string

err = rows.Scan(uid, username, department, created)

checkErr(err)

fmt.Println(uid)

fmt.Println(username)

fmt.Println(department)

fmt.Println(created)

}

//刪除數(shù)據(jù)

stmt, err = db.Prepare("delete from userinfo where uid=$1")

checkErr(err)

res, err = stmt.Exec(1)

checkErr(err)

affect, err = res.RowsAffected()

checkErr(err)

fmt.Println(affect)

db.Close()

}

func checkErr(err error) {

if err != nil {

panic(err)

}

}

復(fù)制代碼

從上面的代碼我們可以看到,PostgreSQL是通過$1,$2這種方式來指定要傳遞的參數(shù),而不是MySQL中的?,另外在sql.Open中的dsn信息的格式也與MySQL的驅(qū)動(dòng)中的dsn格式不一樣,所以在使用時(shí)請(qǐng)注意它們的差異。

還有pg不支持LastInsertId函數(shù),因?yàn)镻ostgreSQL內(nèi)部沒有實(shí)現(xiàn)類似MySQL的自增ID返回,其他的代碼幾乎是一模一樣

怎么安裝postgresql驅(qū)動(dòng)

driver是固定的驅(qū)動(dòng),你要有那個(gè)數(shù)據(jù)庫的連接jar包才行。

url也是固定的,根據(jù)你安裝的數(shù)據(jù)庫提供的端口和名字來寫。

不同的數(shù)據(jù)庫url和driver格式可能不太一樣,你可以去百度。

postgresql驅(qū)動(dòng)包應(yīng)該放在哪個(gè)目錄下

到PostgreSQL官網(wǎng)(.

postgresql

.org),點(diǎn)擊Download菜單,然后找到左邊導(dǎo)航的"Software

Catalogue"欄目,點(diǎn)擊進(jìn)入,從列表中選擇"Drivers

and

interfaces"分類,在載入的驅(qū)動(dòng)和接口列表中選擇"psqlJDBC",這就是postgreSQLd的JDBC驅(qū)動(dòng)(直接連接)。

當(dāng)前文章:postgresql驅(qū)動(dòng)的簡(jiǎn)單介紹
分享地址:http://vcdvsql.cn/article24/dsdgsce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)電子商務(wù)動(dòng)態(tài)網(wǎng)站服務(wù)器托管網(wǎng)站營(yíng)銷關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管