项目地址
https://github.com/mangenotwork/CLI-Sichuan-Mahjong
Grom
https://learnku.com/docs/gorm/v1/connecting_to_the_database/3784
封装一下
package dbimport ("fmt""log""github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mysql")var MysqlDB *gorm.DBfunc InitMysqlDB(user, pass, host, port, dbname string) {var err errordsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", user, pass, host, port, dbname) + "?charset=utf8mb4&parseTime=true&loc=Local&timeout=5s"log.Println("连接数据 = ", dsn)MysqlDB, err = gorm.Open("mysql", dsn)if err != nil {panic(err)}MysqlDB.LogMode(true)MysqlDB.DB().SetMaxIdleConns(10)MysqlDB.DB().SetMaxOpenConns(20)
}func GetMysqlDB() *gorm.DB {return MysqlDB
}
调用方
User 实体
// models/User.gopackage modelsimport ("log""github.com/mangenotwork/CLI-Sichuan-Mahjong/common/db"
)type User struct {Id int64 `gorm:"primary_key;column:id;size:11" json:"id"`Name string `gorm:"column:user_name;size:20" json:"user_name"`Password string `gorm:"column:password;size:32" json:"password"`
}//TableName 默认获取table name
func (*User) TableName() string {return "tbl_user"
}//CreateTable 创建表
func (u *User) CreateTable(){if !db.MysqlDB.HasTable(u.TableName()) {log.Println("CreateTable User")db.MysqlDB.CreateTable(&User{})}
User Dao层,增删改查
// dao/User.go
package daoimport ("errors""github.com/mangenotwork/CLI-Sichuan-Mahjong/Server/models""github.com/mangenotwork/CLI-Sichuan-Mahjong/common/db"
)func User() UserDaoInterface{return &userDao{}
}type UserDaoInterface interface {WhereId(id int64) *userDaoWhereName(name string) *userDaoCreate(user models.User) errorIsHave(userName string) boolGet() (models.User, error)
}type userDao struct {id int64 // 查询字段idname string // 查询字段name
}func (d *userDao) WhereId(id int64) *userDao {d.id = idreturn d
}func (d *userDao) WhereName(name string) *userDao {d.name = namereturn d
}func (d *userDao) Get() (models.User, error) {var (data models.Usererr errorok = falsedbConn = db.MysqlDB)dbConn = dbConn.Table(data.TableName())if d.id != 0 {ok = truedbConn = dbConn.Where("id=?", d.id)}if len(d.name) > 0 {ok = truedbConn = dbConn.Where("user_name=?", d.name)}if ok {err = dbConn.First(&data).Error} else {err = errors.New("参数不够")}return data, err
}func (d *userDao) IsHave(userName string) bool {d.name = userNamedata, _ := d.Get()if data.Id > 0 {return true}return false
}func (d *userDao) Create(user models.User) error {var dbConn = db.MysqlDBreturn dbConn.Table(user.TableName()).Create(&user).Error
}
调用方
//查询user
user, _ := dao.User().WhereName(v.Name).Get()
//密码判断
if user.Id == 0 || user.Password != utils.MD5(v.Password) {//doing...
}
上一篇 2.Tcp通讯
https://blog.csdn.net/Man_ge/article/details/120226415
下一篇