深入了解Golang包的获取方法
更新时间:2022年07月13日 08:24:22 作者:Livingbody
Go语言有一个获取远程包的工具就是go get,本文将详细为大家介绍一下Go语言包的获取的方法,文中的示例代码讲解详细,感兴趣的可以了解一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud)
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
1.获取远程包
go 语言有一个获取远程包的工具就是 go get
,目前 go get 支持多数开源社区 (例如:github、googlecode、bitbucket、Launchpad)
例如:
go get github.com/astaxie/beedb
在pkg目录下tree /f可查看到安装的包如下所示:
2.应用
如下代码所示,可以应用远程下载的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) }
到此这篇关于深入了解Golang包的获取方法的文章就介绍到这了,更多相关Golang包获取内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!
相关文章
go mutex互斥锁使用Lock和Unlock方法占有释放资源
Go号称是为了高并发而生的,在高并发场景下,势必会涉及到对公共资源的竞争,当对应场景发生时,我们经常会使用 mutex 的 Lock() 和 Unlock() 方法来占有或释放资源,虽然调用简单,但 mutex 的内部却涉及挺多的,本文来好好研究一下2023-09-09Golang?内存模型The?Go?Memory?Model
这篇文章主要为大家介绍了Golang?内存模型The?Go?Memory?Model实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11
最新评论