github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/mattn/go-sqlite3/_example/simple/simple.go (about) 1 package main 2 3 import ( 4 "database/sql" 5 "fmt" 6 _ "github.com/insionng/yougam/libraries/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 rows.Scan(&id, &name) 56 fmt.Println(id, name) 57 } 58 59 stmt, err = db.Prepare("select name from foo where id = ?") 60 if err != nil { 61 log.Fatal(err) 62 } 63 defer stmt.Close() 64 var name string 65 err = stmt.QueryRow("3").Scan(&name) 66 if err != nil { 67 log.Fatal(err) 68 } 69 fmt.Println(name) 70 71 _, err = db.Exec("delete from foo") 72 if err != nil { 73 log.Fatal(err) 74 } 75 76 _, err = db.Exec("insert into foo(id, name) values(1, 'foo'), (2, 'bar'), (3, 'baz')") 77 if err != nil { 78 log.Fatal(err) 79 } 80 81 rows, err = db.Query("select id, name from foo") 82 if err != nil { 83 log.Fatal(err) 84 } 85 defer rows.Close() 86 for rows.Next() { 87 var id int 88 var name string 89 rows.Scan(&id, &name) 90 fmt.Println(id, name) 91 } 92 }