package main import ( "flag" "fmt" "net/url" "os" log "github.com/sirupsen/logrus" log2 "log" "time" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "gorm.io/gorm/schema" ) var dsn string func main() { flag.StringVar(&dsn, "dsn", "root:rootPassword@tcp(192.168.150.40:23306)/core", "mysql dsn") // 连接数据库 newLogger := logger.New( log2.New(os.Stdout, "\r\n", log2.LstdFlags), // io writer logger.Config{ SlowThreshold: time.Second, // 慢 SQL 阈值 LogLevel: logger.Silent, // Log level Colorful: false, // 禁用彩色打印 }, ) dsn := fmt.Sprintf("%s?charset=utf8&parseTime=True&loc=Local&time_zone=%s", dsn, url.QueryEscape("'UTC'")) mysqlDb, err := gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: newLogger, NamingStrategy: schema.NamingStrategy{ TablePrefix: "t_", // 表前缀 SingularTable: false, // 复数形式 }}, ) if err != nil { log.Fatal("init mysql db failed, err: ", err.Error()) } var users []User err = mysqlDb.Debug().Model(User{}).Omit("user_name", "password", "email").Find(&users).Error if err != nil { log.Fatal("err: ", err.Error()) } fmt.Println(len(users)) err = mysqlDb.Debug().Model(User{}).Omit("t_users.user_name", "t_users.password", "t_users.email").Find(&users).Error if err != nil { log.Fatal("err: ", err.Error()) } fmt.Println(len(users)) } type User struct { Id uint `gorm:"primarykey"` UserName string `gorm:"column:user_name;type:varchar(20);comment:用户名;NOT NULL" json:"user_name"` Password string `gorm:"column:password;type:char(40);comment:登录密码(SHA1( MD5 (明文密码) + 盐值);NOT NULL" json:"password"` PhoneNumber string `gorm:"column:phone_number;type:varchar(20);comment:手机号;NOT NULL" json:"phone_number"` Email string `gorm:"column:email;type:varchar(64);comment:电子邮箱;NOT NULL" json:"email"` }