db, err := sql.
open
("mysql"
, username:password@protocol
(address)
/dbname?param=value)
第乙個引數是驅動器,第二個引數就是資料庫資訊。
defer db.
close
()
斷開資料庫連線函式。
func
connect()
*sql.db
return db
}
常用的sql命令這裡
golang中,提供了db.exec()
,
通過這個函式,可以直接用sql命令來實現想要的操作,返回值是sql.result
。
_
, err := db.
exec
("create table if not exists item(id int primary key auto_increment,name varchar(30),price int);"
)
例如,上面這段**就在mysql中新建了乙個**。
如果需要在表中大量查詢某些東西,每個查詢中只有where字句
的某些數值不一樣。
試想一下,如果使用db.exec()
,不但涉及大量的數字轉字串的操作,而且**也很不美觀。
這裡就需要預編譯命令來解決這個問題。
golang中,提供了db.prepare()
具體用法如下:
pre,
_:= db.
prepare
("select * from item where id=?;"
)
將每次改變的值用問號代替,接下來使用pre.query()
函式。
result, err := pre.
query
(num)
這樣result
就是在item
**中,查詢id
為num
的結果。
對於從mysql資料庫返回的值,是乙個行的集合,提供了reselt.scan()
函式。
for result.
next()
建議id的型別為sql.nullint32等型別,方便判斷。 Go語言中使用MySql資料庫
go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,常用的有如下幾種 接下來的幾個小節裡面我們都將採用同乙個資料庫表結構 資料庫test,使用者表userinfo,關聯使用者資訊表userdetail。create table us...
Go語言中使用MySql資料庫
go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,常用的有如下幾種 接下來的幾個小節裡面我們都將採用同乙個資料庫表結構 資料庫test,使用者表userinfo,關聯使用者資訊表userdetail。create table us...
Go語言中使用SQLite資料庫
go支援sqlite的驅動也比較多,但是好多都是不支援database sql介面的 目前支援database sql的sqlite資料庫驅動只有第乙個,我目前也是採用它來開發專案的。採用標準介面有利於以後出現更好的驅動的時候做遷移。示例的資料庫表結構如下所示,相應的建表sql create tab...