diff options
author | EuAndreh <eu@euandre.org> | 2024-10-01 15:50:33 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-10-01 15:50:33 -0300 |
commit | bf67f44cfbc551b644542e25b953566ee383d5bd (patch) | |
tree | ac36f31e50850bf1a11b79fc344b4d685fff469c /doc/examples/json/json.go | |
parent | tests/golite.go: Enable slow tests (diff) | |
download | golite-bf67f44cfbc551b644542e25b953566ee383d5bd.tar.gz golite-bf67f44cfbc551b644542e25b953566ee383d5bd.tar.xz |
Turn example files into tests under tests/functional/
Diffstat (limited to 'doc/examples/json/json.go')
-rw-r--r-- | doc/examples/json/json.go | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/doc/examples/json/json.go b/doc/examples/json/json.go deleted file mode 100644 index 181934b..0000000 --- a/doc/examples/json/json.go +++ /dev/null @@ -1,81 +0,0 @@ -package main - -import ( - "database/sql" - "database/sql/driver" - "encoding/json" - "fmt" - _ "github.com/mattn/go-sqlite3" - "log" - "os" -) - -type Tag struct { - Name string `json:"name"` - Country string `json:"country"` -} - -func (t *Tag) Scan(value interface{}) error { - return json.Unmarshal([]byte(value.(string)), t) -} - -func (t *Tag) Value() (driver.Value, error) { - b, err := json.Marshal(t) - return string(b), err -} - -func main() { - os.Remove("./foo.db") - - db, err := sql.Open("sqlite3", "./foo.db") - if err != nil { - log.Fatal(err) - } - defer db.Close() - - _, err = db.Exec(`create table foo (tag jsonb)`) - if err != nil { - log.Fatal(err) - } - - stmt, err := db.Prepare("insert into foo(tag) values(?)") - if err != nil { - log.Fatal(err) - } - defer stmt.Close() - _, err = stmt.Exec(`{"name": "mattn", "country": "japan"}`) - if err != nil { - log.Fatal(err) - } - _, err = stmt.Exec(`{"name": "michael", "country": "usa"}`) - if err != nil { - log.Fatal(err) - } - - var country string - err = db.QueryRow("select tag->>'country' from foo where tag->>'name' = 'mattn'").Scan(&country) - if err != nil { - log.Fatal(err) - } - fmt.Println(country) - - var tag Tag - err = db.QueryRow("select tag from foo where tag->>'name' = 'mattn'").Scan(&tag) - if err != nil { - log.Fatal(err) - } - - fmt.Println(tag.Name) - - tag.Country = "日本" - _, err = db.Exec(`update foo set tag = ? where tag->>'name' == 'mattn'`, &tag) - if err != nil { - log.Fatal(err) - } - - err = db.QueryRow("select tag->>'country' from foo where tag->>'name' = 'mattn'").Scan(&country) - if err != nil { - log.Fatal(err) - } - fmt.Println(country) -} |