beego 模块化model

beego 模块化model

1.修改TestMode.go中文件

package controllers

import (
    //"fmt"
    "myFristPro/models"

    "github.com/astaxie/beego"
    //"github.com/astaxie/beego/orm"
    //_ "github.com/go-sql-driver/mysql"
)

//model的表示UserTable,操作数据库中的表名叫user_table
/*type UserTable struct {
    Id       int64
    Username string
    Password string
}
*/
type TestModelController struct {
    beego.Controller
}

func (c *TestModelController) Get() {
    user := models.UserTable{Username: "Banana", Password: "banana"}
    models.AddUser(&user)

    c.Ctx.WriteString("call model success!")
}

/*
func (c *TestModelController) Get() {
    orm.Debug = true //打开调试模式
    //注册数据库
    //参数一:默认default
    //参数二:数据库类型MySQL
    //参数三:数据库用户名:密码@tcp(ip:port)/数据库名?charset=utf8为字符编码格式
    //参数四:超时时间
    orm.RegisterDataBase("default", "mysql", "test:test@tcp(192.168.5.200:3306)/testdb?charset=utf8", 30)
    //注册UserTabele表
    orm.RegisterModel(new(UserTable))

    //申明对象
    o := orm.NewOrm()
    //设置数据
    //user := UserTable{Username: "xiaoming", Password: "123456"}
    //插入数据
    //id, err := o.Insert(&user)
    /*
        //读取数据
        u := UserTable{Id: 1}
        err := o.Read(&u)
        if err == orm.ErrNoRows {
            fmt.Println("查询不到")
        } else if err == orm.ErrMissPK {
            fmt.Println("找不到主键")
        } else {
            fmt.Println(u.Id, u.Username)
        }
        //修改数据
        u.Username = "Xiao Hua"
        u.Password = "654321"
        o.Update(&u)

        //web上显示内容
        //c.Ctx.WriteString(fmt.Sprintf("id: %d err: %v", id, err))

        //自带原生读取函数
        var maps []orm.Params
        o.Raw("select *from user_table").Values(&maps)

        for _, v := range maps {

            c.Ctx.WriteString(fmt.Sprintf("user_table: %v\n", v))
        }
*/
//采用newquerybuilder方式读取
/*    var users []UserTable
    qb, _ := orm.NewQueryBuilder("mysql")

    qb.Select("password").From("user_table").Where("username= ?").Limit(1)

    sql := qb.String()
    o.Raw(sql, "Xiao Hua").QueryRows(&users)

    c.Ctx.WriteString(fmt.Sprintf("user_table: %v\n", users))

}
*/

 2.在models目录中添加user.go文件

  1>.模块化插入user

package models

import (
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)

//model的表示UserTable,操作数据库中的表名叫user_table
type UserTable struct {
    Id       int64
    Username string
    Password string
}

var (
    db orm.Ormer
)

func init() {
    orm.Debug = true
    //注册数据库
    //参数一:默认default
    //参数二:数据库类型MySQL
    //参数三:数据库用户名:密码@tcp(ip:port)/数据库名?charset=utf8为字符编码格式
    //参数四:超时时间
    orm.RegisterDataBase("default", "mysql", "test:test@tcp(192.168.5.200:3306)/testdb?charset=utf8", 30)
    //注册UserTabele表
    orm.RegisterModel(new(UserTable))
    db = orm.NewOrm()
}

func AddUser(user_table *UserTable) (int64, error) {

    id, err := db.Insert(user_table)
    return id, err
}

//api生产的模板
//bee api
/*
import (
    "errors"
    "strconv"
    "time"
)

var (
    UserList map[string]*User
)

func init() {
    UserList = make(map[string]*User)
    u := User{"user_11111", "astaxie", "11111", Profile{"male", 20, "Singapore", "astaxie@gmail.com"}}
    UserList["user_11111"] = &u
}

type User struct {
    Id       string
    Username string
    Password string
    Profile  Profile
}

type Profile struct {
    Gender  string
    Age     int
    Address string
    Email   string
}

func AddUser(u User) string {
    u.Id = "user_" + strconv.FormatInt(time.Now().UnixNano(), 10)
    UserList[u.Id] = &u
    return u.Id
}

func GetUser(uid string) (u *User, err error) {
    if u, ok := UserList[uid]; ok {
        return u, nil
    }
    return nil, errors.New("User not exists")
}

func GetAllUsers() map[string]*User {
    return UserList
}

func UpdateUser(uid string, uu *User) (a *User, err error) {
    if u, ok := UserList[uid]; ok {
        if uu.Username != "" {
            u.Username = uu.Username
        }
        if uu.Password != "" {
            u.Password = uu.Password
        }
        if uu.Profile.Age != 0 {
            u.Profile.Age = uu.Profile.Age
        }
        if uu.Profile.Address != "" {
            u.Profile.Address = uu.Profile.Address
        }
        if uu.Profile.Gender != "" {
            u.Profile.Gender = uu.Profile.Gender
        }
        if uu.Profile.Email != "" {
            u.Profile.Email = uu.Profile.Email
        }
        return u, nil
    }
    return nil, errors.New("User Not Exist")
}

func Login(username, password string) bool {
    for _, u := range UserList {
        if u.Username == username && u.Password == password {
            return true
        }
    }
    return false
}

func DeleteUser(uid string) {
    delete(UserList, uid)
}
*/

 

posted on 2019-05-22 16:30  LazyAngel  阅读(738)  评论(0编辑  收藏  举报

导航