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  }