中间休假回家,所以距离上篇时间较长 。。
CREATE TABLE `t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
package main
import (
"database/sql"
"fmt"
)
func main() {
db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/test")
checkError(err)
fmt.Println("--------插入用户-------")
id := add(db)
fmt.Println("--------更新用户-------")
update(db, id)
fmt.Println("--------查询用户-------")
search(db)
delete(db, 1)
db.Close()
}
func add(db *sql.DB) int64 {
stmt, err := db.Prepare("INSERT t SET age=?")
checkError(err)
res, err := stmt.Exec("10")
checkError(err)
//获取最新插入的id
id, err := res.LastInsertId()
checkError(err)
fmt.Println("新插入的用户id为:", id)
return id
}
func update(db *sql.DB, id int64) int64 {
stmt, err := db.Prepare("update t set age=444411 where id=?")
res, err := stmt.Exec(id)
checkError(err)
affect, err := res.RowsAffected()
checkError(err)
fmt.Println("影响的行数:", affect)
return affect
}
func search(db *sql.DB) {
rows, err := db.Query("SELECT * FROM t")
checkError(err)
for rows.Next() {
var id int32
var age int32
err = rows.Scan(&id, &age)
checkError(err)
fmt.Println("查询结果:", id, age)
}
}
func delete(db *sql.DB, id int64) {
stmt, err := db.Prepare("delete from t where id=?")
checkError(err)
res, err := stmt.Exec(id)
checkError(err)
affect, err := res.RowsAffected()
checkError(err)
fmt.Println("删除成功,影响行数:", affect)
}
func checkError(err error) {
if err != nil {
panic(err)
}
}