conf/app.conf
db.user = fuga db.password = hoge db.host = localhost db.port = 3306 db.name = test db.protocol = tcp
app/controllers/gorm.go
package controllers import ( "github.com/revel/revel" "github.com/jinzhu/gorm" "strings" "fmt" _"github.com/go-sql-driver/mysql" ) var DB *gorm.DB func InitDB(){ db, err := gorm.Open("mysql", getConnectionString()) if err != nil { panic(err.Error()) } db.DB() DB = db } func getParamString(param string, defaultValue string) string { p, found := revel.Config.String(param) if !found { if defaultValue == "" { fmt.Sprintf("Could not find parameter: " + param) } else { return defaultValue } } return p } func getConnectionString() string { host := getParamString("db.host", "localhost") port := getParamString("db.port", "3306") user := getParamString("db.user", "root") pass := getParamString("db.password", "password") dbname := getParamString("db.name", "test") protocol := getParamString("db.protocol", "tcp") dbargs := getParamString("dbargs", " ") timezone := getParamString("db.timezone", "parseTime=True") if strings.Trim(dbargs, " ") != ""{ dbargs = "?" + dbargs } else { dbargs = "" } return fmt.Sprintf("%s:%s@%s([%s]:%s)/%s?%s", user, pass, protocol, host, port, dbname, timezone) }
app/models/idols.go
package models type Idols struct { ID int Name string `json:"name"` Label string `json:"label"` Producer string `json:"producer"` birth string `json:"birth"` Member string `json:"member"` Song string `json:"song"` }
app/controllers/app.go
package controllers import ( "github.com/revel/revel" "myapp/app/models" _"github.com/go-sql-driver/mysql" ) type App struct { *revel.Controller } func (c App) Index() revel.Result { result := []models.Idols{} DB.Where("id = ?", 1).First(&result) greeting := result[0].Name return c.Render(greeting) }
### 更新
result := models.Idols{} DB.First(&result, 5) result.Song = "flash" DB.Save(&result)
大体わかった
後はデモを作るか topicは野球あたりにしましょう