golang beego 框架 orm 操作 mysql 数据库

本贴最后更新于 1790 天前,其中的信息可能已经时移世异

上周学完了 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 少了不少.
接下来就开始边做边学了,加油!

beego 中文文档

  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 294 关注
  • Beego
    8 引用 • 9 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    你好,请问一下,这个界面的头部 以及背景的 canvas 动画是哪个第三方,请问有链接么,谢谢,期待您的回复

  • nobt

    IP 地址最好也隐藏

    1 回复
  • someone
    作者

    这个博客包括皮肤的开发者不是我,开发者是 http://vanessa.b3log.org/ 你可以去问下
    在社区发帖 https://hacpai.com/

  • danbai225
    作者

    谢谢提醒,下次注意