解决方法如下所示:
package main
import (
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
type User struct {
Id int
Name string
}
func init() {
orm.RegisterDataBase("default", "mysql", "root:password@tcp(127.0.0.1:3306)/test?charset=utf8")
orm.RegisterModel(new(User))
}
func (u *User) TableName() string {
return "user"
}
func main() {
o := orm.NewOrm()
o.Using("default")
// 更新数据
user := User{Id: 1}
err := o.Read(&user)
if err == nil {
user.Name = "NewName"
_, err := o.Update(&user)
if err == nil {
fmt.Println("Update success")
} else {
fmt.Println(err)
}
} else {
fmt.Println(err)
}
// 通过ID获取数据
user = User{Id: 1}
err = o.Read(&user)
if err == nil {
fmt.Println("Get user:", user)
} else {
fmt.Println(err)
}
beego.Run()
}
以上代码使用Beego和Beego ORM框架,通过ID更新和获取数据。先使用orm.RegisterModel
注册User
模型,然后在main
函数中创建orm
对象,并使用o.Using
方法指定数据库连接。
更新数据部分,首先根据ID读取数据,然后修改Name
字段的值,再调用o.Update
方法更新数据。
通过ID获取数据部分,再次使用ID创建User
对象,然后调用o.Read
方法获取数据。
请注意,上述代码中的数据库连接字符串需要根据实际情况进行修改,其中的root
和password
需要替换为实际的用户名和密码,test
为数据库名。