码迷,mamicode.com
首页 > 数据库 > 详细

golang sqlite3 CRUD

时间:2016-10-27 23:27:50      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:style   set   int   turn   name   field   insert   ping   string   

pacakge main
import (
"database/sql" "fmt" "log" _ "github.com/mattn/go-sqlite3" // sqlite3 dirver ) // People have database fields type People struct { id int name string age int } type appContext struct { db *sql.DB } func connectDB(dbName string) (*appContext, string) { db, err := sql.Open("sqlite3", dbName) if err != nil { return nil, err.Error() } if err = db.Ping(); err != nil { return nil, err.Error() } return &appContext{db}, "" } func (c *appContext) getAllData() { rows, err := c.db.Query("SELECT * FROM users") if err != nil { fmt.Println(err.Error()) return } defer rows.Close() for rows.Next() { p := new(People) err := rows.Scan(&p.id, &p.name, &p.age) if err != nil { fmt.Println(err) } fmt.Println(p.id, p.name, p.age) } } // ADD func (c *appContext) Add() { stmt, err := c.db.Prepare("INSERT INTO users(name,age) values(?,?)") if err != nil { log.Fatal(err) } result, err := stmt.Exec("Jack", 1) if err != nil { fmt.Printf("add error: %v", err) return } lastID, err := result.LastInsertId() if err != nil { log.Fatal(err) } fmt.Println("inserted id is ", lastID) } // DELETE func (c *appContext) Delete() { stmt, err := c.db.Prepare("DELETE FROM users WHERE id = ?") if err != nil { log.Fatal(err) } result, err := stmt.Exec(1) if err != nil { log.Fatal(err) } affectNum, err := result.RowsAffected() if err != nil { log.Fatal(err) } fmt.Println("delete affect rows is ", affectNum) } // UPDATE func (c *appContext) Update() { stmt, err := c.db.Prepare("UPDATE users SET age = ? WHERE id = ?") if err != nil { log.Fatal(err) } result, err := stmt.Exec(10, 1) if err != nil { log.Fatal(err) } affectNum, err := result.RowsAffected() if err != nil { log.Fatal(err) } fmt.Println("update affect rows is ", affectNum) } // sqlite3 CRUD func main() { c, err := connectDB("abc.db") if err != "" { print(err) }
c.getAllData() fmt.Println(
"get action done!") c.Add() fmt.Println("add action done!") c.Delete() fmt.Println("delete action done!") c.Update() fmt.Println("update action done!") }

 

golang sqlite3 CRUD

标签:style   set   int   turn   name   field   insert   ping   string   

原文地址:http://www.cnblogs.com/ibgo/p/6005893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!