1.获取远程包
go 语言有一个获取远程包的工具就是 go get
,目前 go get 支持多数开源社区 (例如:github、googlecode、bitbucket、Launchpad)
例如:
1
|
go get github.com/astaxie/beedb |
在pkg目录下tree /f可查看到安装的包如下所示:
2.应用
如下代码所示,可以应用远程下载的go第三方库文件,连接sqllite。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
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包获取内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://juejin.cn/post/7119523086352777247