美文网首页
5.Beego框架之model

5.Beego框架之model

作者: 编程_书恨少 | 来源:发表于2019-04-29 18:32 被阅读0次

一、模型(Models)

beego ORM 是一个强大的 Go 语言 ORM 框架。她的灵感主要来自 Django ORM 和 SQLAlchemy。


image.png image.png

二、安装 ORM:

image.png

接口定义


image.png

三、数据库的设置:

将你需要使用的 driver 加入 import 中


image.png

示例:

1.先选择好数据库,等待代码操作

image.png

建表语句

mysql> create table user_info(id int(11) auto_increment, username varchar(32), password varchar(128), primary key(id));

2.创建testModel.go

image.png image.png

3.删改查操作

更新

//下面是更新
user := UserInfo{Username:"zhangsan", Password:"123456"}
user.Id = 1
o.Update(&user)

读取

user = UserInfo{id:1}
o.Read(&user)

原生读取

    //下面是原生读取
    var users []UserInfo
    o.Raw("select * from user_info").QueryRows(&users)
    c.Ctx.WriteString(fmt.Sprintf("user info:%v", users))
image.png

4.开启调试模式

orm.Debug = true // 是否开启调试模式 调试模式下会打印出sql语句

5.构造查询

QueryBuilder 提供了一个简便,流畅的SQL查询构造器。在不影响代码可读性的前提下用来快速的建立SQL语句。


image.png
//采用queryBuilder方式进行读取
    var users []UserInfo

    qb, _:=orm.NewQueryBuilder("mysql")

    qb.Select("password").From("user_info").Where("username= ?").And("id=1").Limit(1)

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

    c.Ctx.WriteString(fmt.Sprintf("user info:%v", users))

四、MVC模式,Controller通过调用Model操作数据库

image.png image.png image.png

读取方法
controller中

func (c *TestModelController) Get() {
    user := models.UserInfo{Username: "liusi", Password: "7654321"}
    models.AddUser(&user)

    users := []models.UserInfo{}
    models.ReadUserInfo(&users)
    c.Ctx.WriteString(fmt.Sprintf("user info:%v", users))
}

model中

func ReadUserInfo(users *[]UserInfo) {
    qb, _ := orm.NewQueryBuilder("mysql")

    qb.Select("*").From("user_info")

    sql := qb.String()
    db.Raw(sql).QueryRows(users)
}

相关文章

网友评论

      本文标题:5.Beego框架之model

      本文链接:https://www.haomeiwen.com/subject/kpuynqtx.html