package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
// 下面的这个库代替的是 database/sql的这个库
// 所有都得引上面的mysql的数据库
"github.com/jmoiron/sqlx"
)
var db *sqlx.DB
type user struct {
id int
name string
age int
}
func InitDB() (err error){
dns := "root:333@tcp(127.0.0.1:3306)/sql_test?charset=utf8mb4&parseTime=True"
db, err = sqlx.Connect("mysql", dns)
if err != nil{
fmt.Println("连接数据库发生失败")
fmt.Println(err)
return err
}
fmt.Println("连接数据库成功")
return nil
}
func queryrow(){
sqlStr := "select id, name, age from user where id = ?"
var u user
err := db.Get(&u, sqlStr, 2)
if err != nil{
fmt.Println("查询数据发生错误, err:", err)
return
}
fmt.Println(u)
}
func main(){
err := InitDB()
if err != nil{
fmt.Println("连接数据发生错误")
return
}
queryrow()
}
发生错误
主要是因为在struct中,将字段名字小写了
在外面的包无法进行访问
将字段名字改为大写即可了