深入了解Golang包的獲取方法
1.獲取遠(yuǎn)程包
go 語(yǔ)言有一個(gè)獲取遠(yuǎn)程包的工具就是 go get
,目前 go get 支持多數(shù)開(kāi)源社區(qū) (例如:github、googlecode、bitbucket、Launchpad)
例如:
go get github.com/astaxie/beedb
在pkg目錄下tree /f可查看到安裝的包如下所示:
2.應(yīng)用
如下代碼所示,可以應(yīng)用遠(yuǎn)程下載的go第三方庫(kù)文件,連接sqllite。
鏈接地址
package main import ( "fmt" "github.com/astaxie/beedb" _ "github.com/mattn/go-sqlite3" "time" "database/sql" ) /* CREATE TABLE `userinfo` ( `uid` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(64) NULL, `departname` VARCHAR(64) NULL, `created` DATE NULL ); CREATE TABLE `userdeatail` ( `uid` INT(10) NULL, `intro` TEXT NULL, `profile` TEXT NULL, PRIMARY KEY (`uid`) ); */ var orm beedb.Model type Userinfo struct { Uid int `beedb:"PK"` Usernamestring Departname string Created string } func main() { db, err := sql.Open("sqlite3", "./asta.db") if err != nil { panic(err) } orm = beedb.New(db) //insert() //insertsql() // a := selectone() // fmt.Println(a) // b := selectall() // fmt.Println(b) // update() // updatesql() // findmap() // groupby() // jointable() // delete() //deletesql() //deleteall() } func insert() { //save data var saveone Userinfo saveone.Username = "Test Add User" saveone.Departname = "Test Add Departname" saveone.Created = time.Now().Format("2006-01-02 15:04:05") orm.Save(&saveone) fmt.Println(saveone) } func insertsql() { // add one add := make(map[string]interface{}) add["username"] = "astaxie" add["departname"] = "cloud develop" add["created"] = "2012-12-02" orm.SetTable("userinfo").Insert(add) } func selectone() Userinfo { //get one info var one Userinfo orm.Where("uid=?", 1).Find(&one) return one } func selectall() []Userinfo { //get all data var alluser []Userinfo orm.Limit(10).Where("uid>?", 1).FindAll(&alluser) return alluser } func update() { // //update data var saveone Userinfo saveone.Uid = 1 saveone.Username = "Update Username" saveone.Departname = "Update Departname" saveone.Created = time.Now().Format("2006-01-02 15:04:05") orm.Save(&saveone) fmt.Println(saveone) } func updatesql() { //original SQL update t := make(map[string]interface{}) t["username"] = "updateastaxie" //update one orm.SetTable("userinfo").SetPK("uid").Where(2).Update(t) //update batch orm.SetTable("userinfo").Where("uid>?", 3).Update(t) } func findmap() { //Original SQL Backinfo resultsSlice []map[string][]byte //default PrimaryKey id c, _ := orm.SetTable("userinfo").SetPK("uid").Where(2).Select("uid,username").FindMap() fmt.Println(c) } func groupby() { //Original SQL Group By b, _ := orm.SetTable("userinfo").GroupBy("username").Having("username='updateastaxie'").FindMap() fmt.Println(b) } func jointable() { //Original SQL Join Table a, _ := orm.SetTable("userinfo").Join("LEFT", "userdeatail", "userinfo.uid=userdeatail.uid").Where("userinfo.uid=?", 1).Select("userinfo.uid,userinfo.username,userdeatail.profile").FindMap() fmt.Println(a) } func delete() { // // //delete one data saveone := selectone() orm.Delete(&saveone) } func deletesql() { //original SQL delete orm.SetTable("userinfo").Where("uid>?", 2).DeleteRow() } func deleteall() { // //delete all data alluser := selectall() orm.DeleteAll(&alluser) }
到此這篇關(guān)于深入了解Golang包的獲取方法的文章就介紹到這了,更多相關(guān)Golang包獲取內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。