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

beego orm mysql的更多相关文章

  1. beego orm操作mysql数据库

    慢慢弄起来~~ 按官方操作文档试一下. 那个err重复和user编号问题,以后再弄.. package main import ( "fmt" "github.com/a ...

  2. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  3. 基于beego orm 针对oracle定制

    目前golang的ORM对oracle支持都没有mysql那样完整,一个orm要同时兼容mysql和oracle由于在sql语法上区别,会使整orm变的非常臃肿. 本项目是在beego orm上修改, ...

  4. Golang beego ORM + CRUP 操作详解

      构建beego Web 项目         首先构建一个beego 的web 项目,这个我们完全可以参考beego 官网中的开发文档,上面介绍的非常的详细,在这我就不给大家介绍,主要是介绍ORM ...

  5. beego——ORM使用方法

    先来看一个简单示例: models.gp package main import ( "github.com/astaxie/beego/orm" ) type User stru ...

  6. beego orm

    http://beego.me/docs/mvc/model/overview.md go get github.com/astaxie/beego/orm Simple Usage package ...

  7. beego orm 忽略字段

    忽略字段 设置 - 即可忽略 struct 中的字段 type User struct { ... AnyField string `orm:"-"` ... } beego or ...

  8. beego框架学习--beego orm映射

    什么是ORM 即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作 ...

  9. beego orm的使用

    在使用beego model 去操作数据库时 有一些疑惑  找到了一个比较好的博文 原文地址 : https://my.oschina.net/u/252343/blog/829912 (Kelvin ...

随机推荐

  1. UVa 11082 - Matrix Decompressing(最大流)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. 「CF375D Tree and Queries」

    题目 \(dsu\ on\ tree\)的板子题了 \(dsu\ on\ tree\)本质上一种优秀通过轻重链剖分优化到\(O(nlogn)\)的暴力 一般用来解决没有修改的允许离线的子树查询问题 首 ...

  3. js秒换成天时分

    js秒换成天时分 function timeStamp( second_time ){ var time = parseInt(second_time) + "秒"; if( pa ...

  4. wshShell.SendKeys模拟键盘操作

    Dim wshShellSet wshShell = CreateObject("Wscript.Shell")wshShell.SendKeys "{ENTER}&qu ...

  5. UVALive4682 XOR Sum

    UVALive4682 XOR Sum 题意 给定一个数组, 求连续子序列中异或值最大的值. 题解 假设答案区间为 [L, R], 则答案为 XOR[L, R], 可以将区间分解为 XOR[L,R] ...

  6. Vue 父子组件传值 props

    1.Vue 的渲染周期: vue 如何实现响应式追踪. 父子组件通信有很多方式,今天单独聊下props 的方式.我们通过查找官方文档很容发现,props传值有静态和动态两种传值方式. 当然props ...

  7. EF Core 2.1 中的 Eager loading、Explicit loading和LazyLoading (转自MSDN)

    Entity Framework Core allows you to use the navigation properties in your model to load related enti ...

  8. oracle带输入输出参数存储过程(包括sql分页功能)

    记录一下,免得以后忘记了又要到处去找. begin /*这里不能直接执行select语句但可以直接执行update.delete.insert语句*/ end里面不能接执行select语句,声明会话级 ...

  9. ios常用数据库、完美无缺

    直接copy过去就能用,我们不用再去造轮子,现在的xocod9.4更加人性化了,不用再添加依赖库,这点苹果你让我开始喜欢了,哈哈. 需要这兄弟拉进去的哈 下班标的1,2,3,4就是就截图的4个文件,没 ...

  10. C++ Primer 第8章作业

    练习8.1 编写函数,接受一个istream&参数,返回值类型也是istream&. 此函数须从给定流中读取数据,直至遇到文件结束标识时停止.它将读取的数据打印在标准输出上.完成这些操 ...