// Package sql2go... // // Description : sql2go... // // Author : go_developer@163.com<白茶清欢> // // Date : 2021-10-25 4:50 下午 package sql2go // sqlTypeMap mysql数据类型 => go 数据类型映射 // // Author : go_developer@163.com<白茶清欢> // // Date : 4:50 下午 2021/10/25 var sqlTypeMap = map[string]string{ "int": "int", "integer": "int", "tinyint": "int8", "smallint": "int16", "mediumint": "int32", "bigint": "int64", "int unsigned": "uint", "integer unsigned": "uint", "tinyint unsigned": "uint8", "smallint unsigned": "uint16", "mediumint unsigned": "uint32", "bigint unsigned": "uint64", "bit": "byte", "bool": "bool", "enum": "string", "set": "string", "varchar": "string", "char": "string", "tinytext": "string", "mediumtext": "string", "text": "string", "longtext": "string", "blob": "string", "tinyblob": "string", "mediumblob": "string", "longblob": "string", "date": "time.Time", "datetime": "time.Time", "timestamp": "time.Time", "time": "time.Time", "float": "float64", "double": "float64", "decimal": "float64", "binary": "string", "varbinary": "string", } const ( // DaoTpl 模版 DaoTpl = `// Package {PACKAGE} ... // // Description : {PACKAGE} ... package {PACKAGE} import ( "gorm.io/gorm" "errors" ) // {DATA_STRUCT_NAME} 数据库表的数据结构 {DATA_STRUCT} // New{DATA_STRUCT_DAO} 获取DAO实例 func New{DATA_STRUCT_DAO}() *{DATA_STRUCT_DAO} { return &{DATA_STRUCT_DAO}{ table : "{DB_TABLE_NAME}", } } // {DATA_STRUCT_DAO} sql2go tool generate type {DATA_STRUCT_DAO} struct { table string } // GetDetailBy{PRIMARY_KEY} 根据主键ID获取详情 func ({DAO_RECEIVER} *{DATA_STRUCT_DAO}) GetDetailBy{PRIMARY_KEY}(dbInstance *gorm.DB, {PRIMARY_KEY} {PRIMARY_KEY_TYPE}) (*{DATA_STRUCT_NAME}, error) { var ( err error detail {DATA_STRUCT_NAME} ) if err = dbInstance.Table({DAO_RECEIVER}.table).Where("{PRIMARY_KEY_FIELD} = ?", {PRIMARY_KEY}).Limit(1).First(&detail).Error; nil != err { return nil, err } return &detail, nil } // GetList 获取数据列表 func ({DAO_RECEIVER} *{DATA_STRUCT_DAO}) GetList(dbInstance *gorm.DB, condition map[string]interface{}, limit int, offset int) ([]{DATA_STRUCT_NAME}, error) { if nil == condition { condition = make(map[string]interface{}) } var ( err error list []{DATA_STRUCT_NAME} ) if err = dbInstance.Table({DAO_RECEIVER}.table).Where(condition).Limit(limit).Offset(offset).Find(&list).Error; nil != err { return make([]{DATA_STRUCT_NAME}, 0), err } return list, nil } // Create 创建数据 func ({DAO_RECEIVER} *{DATA_STRUCT_DAO}) Create(dbInstance *gorm.DB, data *{DATA_STRUCT_NAME}) error { if nil == data { return errors.New("data is nil") } return dbInstance.Table({DAO_RECEIVER}.table).Create(data).Error } ` )