package cmd import ( "datebase_test/internal/pkg/chain" "time" //chain2 "datebase_test/internal/pkg/chain" "datebase_test/internal/pkg/configs" "fmt" "github.com/spf13/viper" "gorm.io/driver/mysql" "gorm.io/gorm" pb "layer2_self/proto" ) func readConfig() (*configs.Config, error) { viper.SetConfigName("cfg") viper.SetConfigType("toml") viper.AddConfigPath("./configs") cfg := configs.NewConfig() if err := viper.ReadInConfig(); err != nil { return nil, err } if err := viper.Unmarshal(&cfg); err != nil { return nil, err } return cfg, nil } func newMysqlDB(dsn string) (*gorm.DB, error) { return gorm.Open(mysql.Open(dsn), &gorm.Config{}) } func Run() { cfg, err := readConfig() if err != nil { fmt.Println("Error: Read Config Error: ", err) return } dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=True&loc=Local", cfg.Mysql.Username, cfg.Mysql.Password, cfg.Mysql.Host, cfg.Mysql.Port, cfg.Mysql.Database, cfg.Mysql.Charset) db, err := newMysqlDB(dsn) if err != nil { fmt.Println("Error: NewMysqlDB :", err) return } //一个坑,不设置这个参数,gorm会把表名转义后加个s,导致找不到数据库的表 //user := users.User{UID: "123456", PasswordDigest: "123456", UserName: "silly"} chain := pb.Chain{ChainId: "111", ChainName: "222", Status: pb.StatusType_ENABLED, CreatedAt: "", UpdatedAt: "555"} //tmap := time.Now().Unix() //fmt.Println(time.Now(), time.Now().Unix()) //fmt.Println(time.Now().Unix()) //b := time.Unix(time.Now().Unix(), 0) //t := t.Time{Time: time.Now(), Mtime: b} //result := db.Create(&t) // 通过数据的指针来创建 //fmt.Printf("id:%d, err:%v, rows:%d", 1, result.Error, result.RowsAffected) //var b t.Time //sql := "select time from users where id=? " //db.Select(a, sql, 1) //db.Take(&b) //fmt.Printf("%v", b) //fmt.Println(b.Time.Unix()) var c []chain.Chain db.Where("chain_id = ?", "111").Find(&c) fmt.Println(c[0].Chain_name) }