beego框架中的rom支持mysql

项目中使用到mvc模式,总结下使用方式;

models中

package models

import (
//使用beego orm 必备
"github.com/astaxie/beego/orm"
//使用的数据库 必备
_ "github.com/go-sql-driver/mysql" // import your used driver
) type BlogLogin struct {
Id int64
Name string
Pwd string
WechatId string
WechatInfo string
CreateTime string
LastLoginIp string
LastLoginTime string
} func RegisterDB() { //注册 model
orm.RegisterModel(new(BlogLogin))
//注册默认数据库
orm.RegisterDataBase("default", "mysql", "username:password@/databasename?charset=utf8") //密码为空格式

当model创建了一个type ,在RegisterDB中调用该方法创建表

    //orm.RunSyncdb("default", false, true)

创建表结构案例

type User struct {
Id int
Name string
Profile *Profile `orm:"rel(one)"` // OneToOne relation
Post []*Post `orm:"reverse(many)"` // 设置一对多的反向关系
} type Profile struct {
Id int
Age int16
User *User `orm:"reverse(one)"` // 设置一对一反向关系(可选)
} type Post struct {
Id int
Title string
User *User `orm:"rel(fk)"` //设置一对多关系
Tags []*Tag `orm:"rel(m2m)"`
} type Tag struct {
Id int
Name string
Posts []*Post `orm:"reverse(many)"`
}

然后main中初始化,创建表

package main

import (
//调用models中registerDB方法注册
"blog/models"
//设置路由,必备
_ "blog/routers"
//beego控制器使用必备
"github.com/astaxie/beego"
//开启调试默认
"github.com/astaxie/beego/orm"
) func init() {
models.RegisterDB() } func main() {
orm.Debug = true
beego.Run()
}

接下来在controller中使用

package controllers

import (
//使用model中的类型BlogLogin
"blog/models"
//打印数据库查出来的结果
"fmt"
//beego控制器必备
"github.com/astaxie/beego"
//使用orm 中的查询方法
"github.com/astaxie/beego/orm"
) type AdminLoginController struct {
beego.Controller
} func (this *AdminLoginController) Get() {
this.TplName = "AdminLogin.html"
} func (this *AdminLoginController) Post() { name := this.Input().Get("name")
pwd := this.Input().Get("pwd") o := orm.NewOrm()
// read one
login := models.BlogLogin{Name: name, Pwd: pwd}
//read默认根据主键查询,下面我设置的为跟怒name 和pwd 查询
err := o.Read(&login, "Name", "Pwd")
if err != nil {
fmt.Printf("ERR: %v\n", err)
this.Redirect("/adminlogin.html", )
return
}
fmt.Printf("Data: %v\n", login)
this.Redirect("/admin.html", )
return
}

下面为一些标准的sql使用:

    // insert
id, err := o.Insert(&user)
fmt.Printf("ID: %d, ERR: %v\n", id, err) // update
//user.Name = "astaxie"
//num, err := o.Update(&user)
//fmt.Printf("NUM: %d, ERR: %v\n", num, err) // read one
//u := User{Id: user.Id}
//err = o.Read(&u)
//fmt.Printf("ERR: %v\n", err) // delete
//num, err = o.Delete(&u)
//fmt.Printf("NUM: %d, ERR: %v\n", num, err)

详情来自官网:https://beego.me/docs/mvc/model/orm.md

最新文章

  1. 如何在高并发环境下设计出无锁的数据库操作(Java版本)
  2. html基础学习
  3. Yii2的Debug工具
  4. 讲解JS的promise,这篇是专业认真的!
  5. phonegap开发经验谈之一命令行建立项目和准备工作
  6. Java设计模式-外观模式(Facade)
  7. html5 的draggable属性使用<转载收藏>
  8. F(x)
  9. Python的if判断与while循环
  10. Simple Automated Backups for MongoDB Replica Sets
  11. STL rope
  12. rxjs一句话描述一个操作符(1)
  13. 当安全遇到java
  14. Complex类的设计与改进
  15. 一、PTA实验作业
  16. vue 安卓5.1 ios9 兼容性 白屏问题
  17. flask中如何生成迁移文件
  18. K8s之Etcd
  19. 6月份值得一看的 Java 技术干货!
  20. mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)

热门文章

  1. BigDecimal 的除法
  2. Integer类小细节随笔记录
  3. focal loss和ohem
  4. Sublime EMMET使用技巧
  5. Spring - 父容器与子容器
  6. Jstorm+Spring+mybatis整合
  7. 查询sqlserver 表结构呀
  8. ios之coredata(一)
  9. Linux Mysql 卸载
  10. MVC Controller 基类 BaseController 中的 Request