db.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package db
  2. import (
  3. "fmt"
  4. _ "github.com/go-sql-driver/mysql"
  5. "github.com/jmoiron/sqlx"
  6. )
  7. var (
  8. userName string = "root"
  9. password string = "jEER3Dc="
  10. ipAddrees string = "47.110.138.172"
  11. port int = 3306
  12. dbName string = "newDB"
  13. charset string = "utf8"
  14. )
  15. func connectMysql() *sqlx.DB {
  16. dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, password, ipAddrees, port, dbName, charset)
  17. Db, err := sqlx.Open("mysql", dsn)
  18. if err != nil {
  19. fmt.Printf("mysql connect failed, detail is [%v]", err.Error())
  20. }
  21. return Db
  22. }
  23. func queryData(Db *sqlx.DB) {
  24. rows, err := Db.Query("select user_id as userId, user_name as userName from sys_user")
  25. if err != nil {
  26. fmt.Printf("query faied, error:[%v]", err.Error())
  27. return
  28. }
  29. for rows.Next() {
  30. //定义变量接收查询数据
  31. var userId, userName string
  32. err := rows.Scan(&userId,&userName)
  33. if err != nil {
  34. fmt.Printf("get data failed, error:[%v]", err.Error())
  35. }
  36. fmt.Println(userId, userName)
  37. }
  38. //关闭结果集(释放连接)
  39. rows.Close()
  40. }
  41. func selectData(Db *sqlx.DB) {
  42. type userInfo struct {
  43. UserId string `db:"user_id"`
  44. UserName string `db:"user_name"`
  45. }
  46. var userInfos []userInfo
  47. err := Db.Select(&userInfos, "select user_id, user_name from sys_user")
  48. if err!= nil {
  49. fmt.Printf("query fail : [%v]" , err)
  50. return
  51. }
  52. for _, user := range userInfos {
  53. fmt.Println(user.UserId,"=>", user.UserName)
  54. }
  55. }