package main
import (
"fmt"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" // import your used driver
)
// Model Struct
type User struct {
Id int
Name string `orm:"size(100)"`
}
func init() {
// set default database
orm.RegisterDataBase("default", "mysql", "username:password@tcp(127.0.0.1:3306)/db_name?charset=utf8", 30)
// register model
orm.RegisterModel(new(User))
// create table
orm.RunSyncdb("default", false, true)
}
func main() {
o := orm.NewOrm()
user := User{Name: "slene"}
// insert
id, err := o.Insert(&user)
fmt.Printf("ID: %d, ERR: %v
", id, err)
// update
user.Name = "astaxie"
num, err := o.Update(&user)
fmt.Printf("NUM: %d, ERR: %v
", num, err)
// read one
u := User{Id: user.Id}
err = o.Read(&u)
fmt.Printf("ERR: %v
", err)
// delete
num, err = o.Delete(&u)
fmt.Printf("NUM: %d, ERR: %v
", num, err)
}
package controllers
import (
"encoding/json"
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" // import your used driver
"strconv"
)
var (
o orm.Ormer
err error
)
func init() {
// set default database
orm.RegisterDataBase("default", "mysql", "root:root@tcp(192.168.40.10:3306)/wang?charset=utf8", 30)
// register model
orm.RegisterModel(new(User))
// create table
orm.RunSyncdb("default", false, true)
o = orm.NewOrm()
}
type UserController struct {
beego.Controller
}
type User struct {
Id int
Name string `form:"name"`
Age int `form:"age"`
Sex string `form:"sex" orm:"size(100)"`
}
func (this *UserController) UserList() {
var users []User
num, err := o.QueryTable("user").All(&users)
fmt.Printf("Returned Rows Num: %s, %s", num, err)
this.Data["json"] = users
this.ServeJSON()
}
func (this *UserController) AddUser() {
user := User{}
if err := this.ParseForm(&user); err != nil {
fmt.Println(err)
}
id, err := o.Insert(&user)
fmt.Printf("ID: %d, ERR: %v
", id, err)
this.Ctx.WriteString("用户新增成功# "+strconv.Itoa(int(id)))
}
func (this *UserController) EditUser() {
var err error
user := User{}
if err = json.Unmarshal(this.Ctx.Input.RequestBody, &user); err == nil {
this.Data["json"] = user
} else {
this.Data["json"] = err.Error()
}
this.ServeJSON()
}
func (this *UserController) DeleteUser() {
id := this.GetString(":id")
this.Ctx.WriteString("删除用户#" + id)
}
func (this *UserController) GetUserInfo() {
id := this.GetString(":id")
i, _ := strconv.Atoi(id)
// read one
//user := User{Id: i}
//err = o.Read(&user)
//fmt.Printf("ERR: %v
", err)
var user User
err := o.Raw("SELECT * FROM user WHERE id = ?", i).QueryRow(&user)
if err != nil {
fmt.Println(err)
}
this.Data["json"] = user
this.ServeJSON()
}
https://beego.me/docs/mvc/model/overview.md
https://beego.me/docs/mvc/model/rawsql.md