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