github.com/glebarez/go-sqlite@v1.21.1/examples/example1/main.go (about)

     1  package main
     2  
     3  import (
     4  	"database/sql"
     5  	"fmt"
     6  	"os"
     7  	"path/filepath"
     8  
     9  	_ "github.com/glebarez/go-sqlite"
    10  )
    11  
    12  func main() {
    13  	if err := main1(); err != nil {
    14  		fmt.Println(err)
    15  		os.Exit(1)
    16  	}
    17  }
    18  
    19  func main1() error {
    20  	dir, err := os.MkdirTemp("", "test-")
    21  	if err != nil {
    22  		return err
    23  	}
    24  
    25  	defer os.RemoveAll(dir)
    26  
    27  	fn := filepath.Join(dir, "db")
    28  
    29  	db, err := sql.Open("sqlite", fn)
    30  	if err != nil {
    31  		return err
    32  	}
    33  
    34  	if _, err = db.Exec(`
    35  drop table if exists t;
    36  create table t(i);
    37  insert into t values(42), (314);
    38  `); err != nil {
    39  		return err
    40  	}
    41  
    42  	rows, err := db.Query("select 3*i from t order by i;")
    43  	if err != nil {
    44  		return err
    45  	}
    46  
    47  	for rows.Next() {
    48  		var i int
    49  		if err = rows.Scan(&i); err != nil {
    50  			return err
    51  		}
    52  
    53  		fmt.Println(i)
    54  	}
    55  
    56  	if err = rows.Err(); err != nil {
    57  		return err
    58  	}
    59  
    60  	if err = db.Close(); err != nil {
    61  		return err
    62  	}
    63  
    64  	fi, err := os.Stat(fn)
    65  	if err != nil {
    66  		return err
    67  	}
    68  
    69  	fmt.Printf("%s size: %v\n", fn, fi.Size())
    70  	return nil
    71  }