| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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"`
- }
|