-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
45 lines (36 loc) · 2.06 KB
/
main.go
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
package main
import (
"fmt"
artisan "github.com/davidallendj/artisan/pkg/artisan"
)
func main() {
// the builder is always the starting point with artisan
var (
b = artisan.Builder{}
name = "david"
count = 1
)
// do 'create' with two different ways to add columns
fmt.Printf("create.1: %s\n", b.Create("test").WithAttribute(artisan.TABLE).AddColumns(artisan.Columns{
"count": artisan.Integer{},
"name": artisan.Text{},
}).Build())
fmt.Printf("create.2: %s\n", b.Create("test").AddColumn("count", artisan.Integer{}).AddColumn("name", artisan.Text{}).Build())
fmt.Printf("create.3: %s\n", b.Create("test").AddColumns(artisan.Columns{"count": artisan.Integer{}, "name": artisan.Text{}}).Build())
// do 'insert' with two different ways to add values
fmt.Printf("insert.1: %s\n", b.Insert("test").AddValue("count", count).Build())
fmt.Printf("insert.2: %s\n", b.Insert("test").AddValues(artisan.Values{"count": count, "name": name}).Build())
// do 'select' both with and without 'where' clause
fmt.Printf("select.1: %s\n", b.Select().From("test").Where(artisan.IsEqual("name", name)).Build())
fmt.Printf("select.2: %s\n", b.Select(artisan.AllColumns()).From("test").Build())
fmt.Printf("select.3: %s\n", b.Select("count", "name").From("test").Where("count>10").Build())
fmt.Printf("select.4: %s\n", b.Select("name").WithAttribute(artisan.DISTINCT).From("test").Where(artisan.IsGreaterThanOrEqual("count", 10)).Build())
// do 'update' to set existing values
fmt.Printf("update.1: %s\n", b.Update("test").Set(artisan.Values{"count": 10, "name": "joe"}).Where("count>3").Build())
fmt.Printf("update.2: %s\n", b.Update("test").Set(artisan.Values{"count": 10, "name": "joe"}).Where(artisan.IsGreaterThan("count", 3)).OrderBy("count").Limit(10).Offset(2).Build())
// do 'delete' and delete a single and multiple records
fmt.Printf("delete.1: %s\n", b.Delete("test").Where(artisan.IsLessThanOrEqual("count", 1)).Build())
// do 'drop' to remove a table
fmt.Printf("drop.1: %s\n", b.Drop("test").Build())
fmt.Printf("drop.2: %s\n", b.Drop("test").IfExists().Build())
}