一、模型(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.png3.删改查操作
更新
//下面是更新
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)
}
网友评论