package database import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" uuid "github.com/satori/go.uuid" ) var ( DB *sql.DB ) func Database() { DB, _ = sql.Open("mysql", "sginIn:sXeP48Xje2NLJ4Ek@(112.125.95.197:3306)/sginin") //设置数据库最大连接数 DB.SetConnMaxLifetime(100) //设置上数据库最大闲置连接数 DB.SetMaxIdleConns(10) //验证连接 if err := DB.Ping(); err != nil { fmt.Println("数据库连接失败!") return } fmt.Println("数据库链接成功!") } // 表结构 type User struct { Uid string Account string Username string Role string Integration int } func SelectData() string { rows, err := DB.Query("SELECT * FROM User") if err != nil { fmt.Println(err.Error()) } var integration_ sql.NullInt64 var uid_, account_wx_, username_, role_ sql.NullString var user User var stringLine string for rows.Next() { err := rows.Scan(&uid_, &account_wx_, &username_, &role_, &integration_) if err != nil { fmt.Println(err.Error()) } user = User{ Uid: uid_.String, Account: account_wx_.String, Username: username_.String, Role: role_.String, Integration: int(integration_.Int64), } fmt.Println(user) stringLine = fmt.Sprintf("\n uid: %s \n account: %s \n username:%s \n role: %s \n integration: %d \n", user.Uid, user.Account, user.Username, user.Role, user.Integration) } return stringLine } func SelectUserIntegrationByNickName(nickname string) int { var integration_ sql.NullInt64 var user User row := DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'") err := row.Scan(&integration_) if err != nil { row, err := DB.Exec("insert into User(uid,account_wx,username,role,integration) "+ "values (?,?,?,?,?)", uuid.NewV4().String(), nickname, nickname, "user", 1) if err != nil { fmt.Println("exec success, ", row) fmt.Println("exec failed, ", err) return 9990999 } } row = DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'") err = row.Scan(&integration_) if err != nil { fmt.Println(err) } user = User{ Integration: int(integration_.Int64), } return user.Integration } func UpDataUserIntegrationByNickName(nickname string, integration int) int { var integration_ sql.NullInt64 var user User row := DB.QueryRow("update User set integration=? where username=?", integration+1, nickname) err := row.Scan(&integration_) if err != nil { fmt.Println(err) } row = DB.QueryRow("SELECT integration FROM User where username = '" + nickname + "'") err = row.Scan(&integration_) if err != nil { fmt.Println(err) } user = User{ Integration: int(integration_.Int64), } return user.Integration }