123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package main
- import (
- "database/sql"
- "fmt"
- _ "github.com/mattn/go-sqlite3"
- "log"
- "os"
- )
- func main() {
- os.Remove("./foo.db")
- db, err := sql.Open("sqlite3", "./foo.db")
- if err != nil {
- log.Fatal(err)
- }
- defer db.Close()
- sqlStmt := `
- create table foo (id integer not null primary key, name text);
- delete from foo;
- `
- _, err = db.Exec(sqlStmt)
- if err != nil {
- log.Printf("%q: %s\n", err, sqlStmt)
- return
- }
- tx, err := db.Begin()
- if err != nil {
- log.Fatal(err)
- }
- stmt, err := tx.Prepare("insert into foo(id, name) values(?, ?)")
- if err != nil {
- log.Fatal(err)
- }
- defer stmt.Close()
- for i := 0; i < 100; i++ {
- _, err = stmt.Exec(i, fmt.Sprintf("こんにちわ世界%03d", i))
- if err != nil {
- log.Fatal(err)
- }
- }
- tx.Commit()
- rows, err := db.Query("select id, name from foo")
- if err != nil {
- log.Fatal(err)
- }
- defer rows.Close()
- for rows.Next() {
- var id int
- var name string
- err = rows.Scan(&id, &name)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(id, name)
- }
- err = rows.Err()
- if err != nil {
- log.Fatal(err)
- }
- stmt, err = db.Prepare("select name from foo where id = ?")
- if err != nil {
- log.Fatal(err)
- }
- defer stmt.Close()
- var name string
- err = stmt.QueryRow("3").Scan(&name)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(name)
- _, err = db.Exec("delete from foo")
- if err != nil {
- log.Fatal(err)
- }
- _, err = db.Exec("insert into foo(id, name) values(1, 'foo'), (2, 'bar'), (3, 'baz')")
- if err != nil {
- log.Fatal(err)
- }
- rows, err = db.Query("select id, name from foo")
- if err != nil {
- log.Fatal(err)
- }
- defer rows.Close()
- for rows.Next() {
- var id int
- var name string
- err = rows.Scan(&id, &name)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(id, name)
- }
- err = rows.Err()
- if err != nil {
- log.Fatal(err)
- }
- }
|