1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| func querying(db *sqlx.DB) { schema := `CREATE TABLE IF NOT EXISTS person ( id INT(10) AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, age TINYINT, address VARCHAR(100) )` db.MustExec(schema)
sqlStr := "insert into person(name, age) values(?, ?)" db.MustExec(sqlStr, "jack", 21) db.MustExec(sqlStr, "maxin", 30)
sqlStr = "insert into person(name, age, address) values(?, ?, ?)" result, err := db.Exec(sqlStr, "lucy", 39, "London, UK") if err != nil { panic(err) } id, _ := result.LastInsertId() fmt.Printf("last insert id is %d\n", id)
sqlStr = "select * from person" rows1, err := db.Query(sqlStr) if err != nil { panic(err) } for rows1.Next() { var id int var name string var age uint8 var address sql.NullString err = rows1.Scan(&id, &name, &age, &address) if err != nil { panic(err) } fmt.Printf("id: %d, name: %s, age: %d, address: %v\n", id, name, age, address) }
type person struct { Id int Name string Age uint8 Address sql.NullString } rows2, err := db.Queryx(sqlStr) if err != nil { panic(err) } for rows2.Next() { var p person rows2.Scan(&p) fmt.Printf("%#v\n", p) }
var p person var pp []person
err = db.Get(&p, "select * from person limit 1") if err != nil { panic(err) } fmt.Printf("%#v\n", p)
err = db.Select(&pp, "select * from person where id > 2") if err != nil { panic(err) } fmt.Printf("%#v\n", pp)
var count int db.Get(&count, "select count(*) from person") fmt.Println(count)
var names []string db.Select(&names, "select name from person") fmt.Println(names) }
|