上周学完了 GoLang 基础部分知识,这周学习下 beego 框架.
这篇文章记录了 ORM 部分知识
连接数据库
在包名 dao 下创建 mysql.go
package dao
import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
func init() {
orm.RegisterDriver("mysql", orm.DRMySQL)
orm.RegisterDataBase("default", "mysql", "user:pass@tcp(185.207.153.189:3306)/tempyun")
//参数3按照官网参数连接不上mysql
// orm.RegisterDataBase("default", "mysql", "root:root@/orm_test?charset=utf8")
}
func Getcon() orm.Ormer {
return orm.NewOrm()
}
model
type User struct { Username string `orm:"pk"` Password string Email string Headurl string }
如果表的主键不是 id,那么需要加上 pk 注释,显式的说这个字段是主键
属性名首字母大写
第二个单词首字母不能大写,如要大写将对应 如 HeadUrl 对应表字段 Head_url
查询
func Ut() { var o=dao.Getcon() var users []models.User //原始sql num, err := o.Raw("SELECT * FROM user").QueryRows(&users) if err == nil { fmt.Println("user nums: ", num) fmt.Println(users[0]) } //根据主键 user := models.User{Username: "danbai"} err = o.Read(&user) if err == orm.ErrNoRows { fmt.Println("查询不到") } else if err == orm.ErrMissPK { fmt.Println("找不到主键") } else { fmt.Println(user.Password) } }
插入更新
func Ut1() { var o=dao.Getcon() var user = models.User{"test","123","225@qq.com","https://www.123.com"} username, err := o.Insert(&user) if err == nil { fmt.Println(username) } user1 := models.User{Username: "test"} if o.Read(&user1) == nil { user1.Password = "pass" if num, err := o.Update(&user1); err == nil { fmt.Println(num) } } }
总结
今天大概看了遍文档 和 spring 框架还是有点区别,但是内容都差不多路由、控制、服务、视图、过滤器等.
简单练习了下,发现启动速度也很快.占用内存比 java 少了不少.
接下来就开始边做边学了,加油!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于