OSDN Git Service

add sqlite vendor (#48)
[bytom/vapor.git] / vendor / github.com / mattn / go-sqlite3 / _example / simple / simple.go
1 package main
2
3 import (
4         "database/sql"
5         "fmt"
6         _ "github.com/mattn/go-sqlite3"
7         "log"
8         "os"
9 )
10
11 func main() {
12         os.Remove("./foo.db")
13
14         db, err := sql.Open("sqlite3", "./foo.db")
15         if err != nil {
16                 log.Fatal(err)
17         }
18         defer db.Close()
19
20         sqlStmt := `
21         create table foo (id integer not null primary key, name text);
22         delete from foo;
23         `
24         _, err = db.Exec(sqlStmt)
25         if err != nil {
26                 log.Printf("%q: %s\n", err, sqlStmt)
27                 return
28         }
29
30         tx, err := db.Begin()
31         if err != nil {
32                 log.Fatal(err)
33         }
34         stmt, err := tx.Prepare("insert into foo(id, name) values(?, ?)")
35         if err != nil {
36                 log.Fatal(err)
37         }
38         defer stmt.Close()
39         for i := 0; i < 100; i++ {
40                 _, err = stmt.Exec(i, fmt.Sprintf("こんにちわ世界%03d", i))
41                 if err != nil {
42                         log.Fatal(err)
43                 }
44         }
45         tx.Commit()
46
47         rows, err := db.Query("select id, name from foo")
48         if err != nil {
49                 log.Fatal(err)
50         }
51         defer rows.Close()
52         for rows.Next() {
53                 var id int
54                 var name string
55                 err = rows.Scan(&id, &name)
56                 if err != nil {
57                         log.Fatal(err)
58                 }
59                 fmt.Println(id, name)
60         }
61         err = rows.Err()
62         if err != nil {
63                 log.Fatal(err)
64         }
65
66         stmt, err = db.Prepare("select name from foo where id = ?")
67         if err != nil {
68                 log.Fatal(err)
69         }
70         defer stmt.Close()
71         var name string
72         err = stmt.QueryRow("3").Scan(&name)
73         if err != nil {
74                 log.Fatal(err)
75         }
76         fmt.Println(name)
77
78         _, err = db.Exec("delete from foo")
79         if err != nil {
80                 log.Fatal(err)
81         }
82
83         _, err = db.Exec("insert into foo(id, name) values(1, 'foo'), (2, 'bar'), (3, 'baz')")
84         if err != nil {
85                 log.Fatal(err)
86         }
87
88         rows, err = db.Query("select id, name from foo")
89         if err != nil {
90                 log.Fatal(err)
91         }
92         defer rows.Close()
93         for rows.Next() {
94                 var id int
95                 var name string
96                 err = rows.Scan(&id, &name)
97                 if err != nil {
98                         log.Fatal(err)
99                 }
100                 fmt.Println(id, name)
101         }
102         err = rows.Err()
103         if err != nil {
104                 log.Fatal(err)
105         }
106 }