农安建设局网站,wordpress 建单页网站,华为开发平台,美食网站的建设背景刚开始在 sqlx 和 gorm 两者间纠结了半天#xff0c;准备使用 sqlx 了#xff0c;看了文档#xff0c;感觉就是灾难般的文档。我按照例子硬是没有从 MySQL 读出数据。又尝试了 gorm#xff0c;这家伙的文档更加不友好#xff0c;概念更多。调试了半天#xff0c;返回的结…刚开始在 sqlx 和 gorm 两者间纠结了半天准备使用 sqlx 了看了文档感觉就是灾难般的文档。我按照例子硬是没有从 MySQL 读出数据。又尝试了 gorm这家伙的文档更加不友好概念更多。调试了半天返回的结果 id 永远是 0。我半天没有找到问题。最终我选择了 database/sql。http://go-database-sql.org/index.html参考最友好的一篇使用文档https://tutorialedge.net/golang/golang-mysql-tutorial/测试代码package mainimport (database/sqlfmt_ github.com/go-sql-driver/mysqlgithub.com/joho/godotenvlogos)type KV struct {id intkey stringvalue stringupdated_at string}func main() {err : godotenv.Load(../.env)if err ! nil {log.Fatal(Error loading .env file)}db_database : os.Getenv(DB_DATABASE)db_username : os.Getenv(DB_USERNAME)db_password : os.Getenv(DB_PASSWORD)db_host : os.Getenv(DB_HOST)db_port : os.Getenv(DB_PORT)db, err : sql.Open(mysql,fmt.Sprintf(%s:%stcp(%s:%s)/%s?charsetutf8mb4timeout5000ms,db_username, db_password, db_host, db_port, db_database))if err ! nil {log.Fatal(Error)}defer db.Close()var kv KVerr db.QueryRow(SELECT id, key, value, updated_at FROM kv where id ?,2).Scan(kv.id, kv.key, kv.value, kv.updated_at)if err ! nil {panic(err.Error())}log.Println(kv.id)log.Println(kv.key)log.Println(kv.value)log.Println(kv.updated_at)}执行结果 go run main.go2019/10/23 19:29:33 22019/10/23 19:29:33 translate_color_name2019/10/23 19:29:33 42019/10/23 19:29:33 2019-09-08 16:31:51需要注意的地方定义 struct结果使用 Scan