深入了解Golang包的获取方法
作者:Livingbody 发布时间:2024-03-23 14:34:30
标签:Go,包,获取
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)
}
来源:https://juejin.cn/post/7119523086352777247
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 目录背景法1,不适用法2,已不能用法3:Appnium法4:模拟操作整体代码后续工作及扩展总结背景由于课题需要爬取朋友圈的内容作为研究数据,
- 毫无疑问,这个世界设计无处不在,优美的设计会得到会心的微笑和由衷的赞赏。然而,想从事设计或在设计边缘的人们未必有机会学习专业的设计。实际上,
- 前面介绍了关于用户账户的User表,但是现实生活中随着问题的复杂化数据库存储的数据不可能这么简单,让我们设想有另外一张表,这张表和User有
- 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级
- 1 简介kepler.gl作为开源地理空间数据可视化神器,也一直处于活跃的迭代开发状态下。而在前不久,kepler.gl正式发布了其2.4.
- 你好,一般情况下,Ctrl+C 是最简单的方法,当无法 Ctrl+C 时,我们借助于 Python,以下是具体步骤:第一步,安装工具库1、t
- 很多朋友问到sql server数据库”生成脚本”,只导出了数据库的sql脚本,而表里的数据依然没有导出来。很简单,看教程:注:我这里用的S
- 在php中使用Xajax能够即时与数据库发生交互带给用户更好的体验主要的应用有网页的即时、不刷新的登录系统也可以利用于注册系统中即时验证用户
- 前言在Python开发中,有些情况下,我们可能面临在一台机器上同时安装多版本Python的需求。比如:有多个Python项目,每个项目依赖不
- 一、基本概述目前电脑上已经下载了MongoDB数据库、navicat for mongodb作为mongoDB的可视化工具,形如navica
- 本文实例讲述了Python实现将数据写入netCDF4中的方法。分享给大家供大家参考,具体如下:nc文件为处理气象数据文件。用户可以去htt
- '-----------------------------------------------------------
- 本文主要介绍的是Python高阶函数与装饰器函数的相关内容,分享给大家,下面话不多说了,来一起看看详细的介绍吧高阶函数1、可以使用函数对象作
- 今天想使用pdf的切分软件实现pdf文件的切分,但是软件需要会员???好吧,,,,又要会员,这么简单的功能能难倒咱们程序员吗。俗话说自给自足
- 一、插入排序插入排序与我们平时打扑克牌非常相似,将新摸到的牌插入到已有的牌中合适的位置,而已有的牌往往是有序的。1.1 执行流程(1)在执行
- 下面先给大家介绍下Python3 执行系统命令并获取实时回显最近在改造一些打包的逻辑,原来在 Windows 下是基于批处理制作的,由于批处
- 一、Echarts简介Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而
- 第一列按照goodsid局部分组,然后在分组后的记录中按照audittime升序排序得到序号,从而显示某商品得第几次变迁。 第二列是取该商品
- 一.绘制直线在OpenCV中,绘制直线需要获取直线的起点和终点坐标,调用cv2.line()函数实现该功能。该函数原型如下所示:img =
- 模板继承是ThinkPHP3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其