深入了解Golang包的获取方法

作者:Livingbody 时间:2024-03-23 14:34:30 

1.获取远程包

go 语言有一个获取远程包的工具就是 go get,目前 go get 支持多数开源社区 (例如:github、googlecode、bitbucket、Launchpad)

例如:

go get github.com/astaxie/beedb

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

深入了解Golang包的获取方法

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

标签:Go,包,获取
0
投稿

猜你喜欢

  • mysql 5.7.23 安装配置方法图文教程

    2024-01-14 02:58:36
  • Python中三种时间格式转换的方法

    2023-10-18 13:11:43
  • PHP 中文简繁互转代码 完美支持大陆、香港、台湾及新加坡

    2023-11-15 11:46:16
  • 用sql实现18位身份证校验代码分享 身份证校验位计算

    2024-01-13 13:37:11
  • Python3 Loguru输出日志工具的使用

    2021-11-18 04:28:29
  • Yii2结合Workerman的websocket示例详解

    2023-11-17 04:48:40
  • 利用Python进行异常值分析实例代码

    2022-06-30 16:14:59
  • Python删除指定目录下过期文件的2个脚本分享

    2022-09-11 19:01:10
  • vue.js使用watch监听路由变化的方法

    2024-05-10 14:16:22
  • PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

    2023-07-11 03:55:49
  • SqlServer 执行计划及Sql查询优化初探

    2024-01-14 23:03:01
  • python多线程与多进程及其区别详解

    2021-10-10 04:04:49
  • 超长文章的智能分页-支持HTML

    2008-03-20 13:21:00
  • pytorch K折交叉验证过程说明及实现方式

    2021-01-11 16:05:08
  • 网页设计:把导航系统做薄

    2007-12-28 12:02:00
  • centos系统升级python 2.7.3

    2023-08-18 06:40:52
  • windows下wxPython开发环境安装与配置方法

    2021-10-22 07:51:01
  • Python实现aes加密解密多种方法解析

    2021-05-13 01:36:53
  • Python模拟键盘输入自动登录TGP

    2021-11-04 11:27:22
  • js编写的语法高亮引擎工具

    2008-05-25 13:27:00
  • asp之家 网络编程 m.aspxhome.com