欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解Golang包的獲取方法

 更新時間:2022年07月13日 08:24:22   作者:Livingbody  
Go語言有一個獲取遠程包的工具就是go get,本文將詳細為大家介紹一下Go語言包的獲取的方法,文中的示例代碼講解詳細,感興趣的可以了解一下

1.獲取遠程包

go 語言有一個獲取遠程包的工具就是 go get,目前 go get 支持多數(shù)開源社區(qū) (例如:github、googlecode、bitbucket、Launchpad)

例如:

go get github.com/astaxie/beedb

在pkg目錄下tree /f可查看到安裝的包如下所示:

2.應(yīng)用

如下代碼所示,可以應(yīng)用遠程下載的go第三方庫文件,連接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"`
	Username   string
	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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用go實現(xiàn)反向代理的代碼示例

    用go實現(xiàn)反向代理的代碼示例

    當實現(xiàn)反向代理時,Go語言是一個強大而受歡迎的選擇,Go具有出色的并發(fā)性和網(wǎng)絡(luò)編程支持,使其成為構(gòu)建高性能反向代理的理想工具,在本文中,我將介紹如何使用Go語言實現(xiàn)一個簡單的反向代理服務(wù)器,并提供相應(yīng)的源代碼,需要的朋友可以參考下
    2023-06-06
  • Golang slice切片操作之切片的追加、刪除、插入等

    Golang slice切片操作之切片的追加、刪除、插入等

    這篇文章主要介紹了Golang slice切片操作之切片的追加、刪除、插入等,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • golang實現(xiàn)一個簡單的websocket聊天室功能

    golang實現(xiàn)一個簡單的websocket聊天室功能

    這篇文章主要介紹了golang實現(xiàn)一個簡單的websocket聊天室功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • golang 實現(xiàn)struct、json、map互相轉(zhuǎn)化

    golang 實現(xiàn)struct、json、map互相轉(zhuǎn)化

    這篇文章主要介紹了golang 實現(xiàn)struct、json、map互相轉(zhuǎn)化,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 詳解Go語言各種常見類型的默認值和判空方法

    詳解Go語言各種常見類型的默認值和判空方法

    本文主要介紹了詳解Go語言各種常見類型的默認值和判空方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 詳解go語言的并發(fā)

    詳解go語言的并發(fā)

    這篇文章主要介紹了go語言并發(fā)的相關(guān)資料,幫助大家更好的理解和學習使用golang,感興趣的朋友可以了解下
    2021-03-03
  • 一文帶你使用golang手擼一個websocket中間件

    一文帶你使用golang手擼一個websocket中間件

    這篇文章主要為大家詳細介紹了如何使用golang手擼一個websocket中間件,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以參考一下
    2023-12-12
  • Go 實現(xiàn)熱重啟的詳細介紹

    Go 實現(xiàn)熱重啟的詳細介紹

    這篇文章主要介紹了Go 實現(xiàn)熱重啟的詳細介紹,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Go語言讀取YAML 配置文件的兩種方式分享

    Go語言讀取YAML 配置文件的兩種方式分享

    在日常開發(fā)中,YAML 格式的文件基本上被默認為是配置文件,其內(nèi)容因為縮進帶來的層級感看起來非常直觀和整潔。本文分享了讀取YAML 配置文件的兩種方式,需要的可以參考一下
    2022-12-12
  • 一文詳解Golang中net/http包的實現(xiàn)原理

    一文詳解Golang中net/http包的實現(xiàn)原理

    這篇文章主要介紹了如何用?net/http?自己編寫實現(xiàn)一個?HTTP?Server?并探究其實現(xiàn)原理,具體講解Go語言是如何接收和處理請求的,希望能夠?qū)Υ蠹业膶W習或工作具有一定的幫助
    2022-08-08

最新評論