package utdto import ( "fmt" "gorm.io/gorm" "strings" ) // Insert 插入 func Insert(db *gorm.DB, value any, tableName string) *gorm.DB { stmt := db.Session(&gorm.Session{DryRun: true}).Create(value).Statement stmtSQL := stmt.SQL.String() sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) return db.Exec(sql, stmt.Vars...) } // Update 更新 func Update(db *gorm.DB, value any, tableName string) *gorm.DB { stmt := db.Session(&gorm.Session{DryRun: true}).Updates(value).Statement stmtSQL := stmt.SQL.String() sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) return db.Exec(sql, stmt.Vars...) } // Save 保存 func Save(db *gorm.DB, value any, tableName string) *gorm.DB { stmt := db.Session(&gorm.Session{DryRun: true}).Save(value).Statement stmtSQL := stmt.SQL.String() sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) return db.Exec(sql, stmt.Vars...) } func First(db *gorm.DB, value any, tableName string) *gorm.DB { stmt := db.Session(&gorm.Session{DryRun: true}).First(value).Statement stmtSQL := stmt.SQL.String() fmt.Println("dwjw🐷 stmt.Table", stmt.Table) sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) return db.Raw(sql, stmt.Vars...).Scan(value) } func Find(db *gorm.DB, value any, tableName string) *gorm.DB { stmt := db.Session(&gorm.Session{DryRun: true}).Find(value).Statement stmtSQL := stmt.SQL.String() sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) return db.Raw(sql, stmt.Vars...).Scan(value) }