go语言使用
从数据库Mysql获取结构化数据
package main
import (
"database/sql"
"fmt"
)
var Db *sql.DB
type User struct {
id string
name string
age int64
}
func init() {
var err error
Db, err = sql.Open("mysql", "root:密码/库名?charset=utf8")
if err != nil {
panic(err)
}
fmt.Println("连接Mysql数据库初始化")
}
//根据id查询一本书
func queryUserById(id string) (user User, err error) {
user = User{}
err = Db.QueryRow("select id,name,age from user where id = ?", id).
Scan(&user.id, &user.name, &user.age)
if err != nil {
panic(err)
}
return
}
//更新一本书
func updateUser(user *User) (err error) {
_, err = Db.Exec("update user set name = ?,age =? where id = ?",
user.id,user.name,user.age)
if err != nil {
panic(err)
}
return
}
//删除一本书
func deleteUser(user *User) (err error) {
_,err = Db.Exec("DELETE FROM user where id = ?",user.id)
if err != nil {
panic(err)
}
return
}
func addOneUser(user *User) (err error){
statement := "insert into user (id,name,age) values(?,?,?) returning id"
stmt,err := Db.Prepare(statement)
if err!= nil {
return
}
defer stmt.Close()
err = stmt.QueryRow(user.id,user.name,user.age).Scan(&user)
return
}
func main() {
user := &User{
id: "2345678909876",
name: "zhangfei",
age: 14,
}
//新增一本书
addOneUser(user)
u,_ := queryUserById("113")
fmt.Println(u)
}