beego orm mysql
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的更多相关文章
- beego orm操作mysql数据库
慢慢弄起来~~ 按官方操作文档试一下. 那个err重复和user编号问题,以后再弄.. package main import ( "fmt" "github.com/a ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- 基于beego orm 针对oracle定制
目前golang的ORM对oracle支持都没有mysql那样完整,一个orm要同时兼容mysql和oracle由于在sql语法上区别,会使整orm变的非常臃肿. 本项目是在beego orm上修改, ...
- Golang beego ORM + CRUP 操作详解
构建beego Web 项目 首先构建一个beego 的web 项目,这个我们完全可以参考beego 官网中的开发文档,上面介绍的非常的详细,在这我就不给大家介绍,主要是介绍ORM ...
- beego——ORM使用方法
先来看一个简单示例: models.gp package main import ( "github.com/astaxie/beego/orm" ) type User stru ...
- beego orm
http://beego.me/docs/mvc/model/overview.md go get github.com/astaxie/beego/orm Simple Usage package ...
- beego orm 忽略字段
忽略字段 设置 - 即可忽略 struct 中的字段 type User struct { ... AnyField string `orm:"-"` ... } beego or ...
- beego框架学习--beego orm映射
什么是ORM 即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作 ...
- beego orm的使用
在使用beego model 去操作数据库时 有一些疑惑 找到了一个比较好的博文 原文地址 : https://my.oschina.net/u/252343/blog/829912 (Kelvin ...
随机推荐
- css层叠样式表总结
一.css css里注释只有一种 /* */ 二.css与HTML四种结合方式 1.行内样式 在标签中加入style属性 内部的写法:key1:value;key2:value; <div s ...
- php无极限分类函数
/** * [make_tree description] * @Author Lerko * @DateTime 2017-04-01T14:57:24+0800 * @param [type] $ ...
- JDBC(4)PreparedStatement
PreparedStatement: 是一个预编译对象 是Statement的子接口 允许数据库预编译SQL 执行SQL的时候,无需重新传入SQL语句,它们已经编译SQL语句 执行SQL语句 :exe ...
- CentOS 7安装简介及基本操作
计算机基本概念: 1.计算机硬件组成: 2.计算机系统结构: 3.操作系统的功能:硬件驱动.进程管理.内存管理.网络管理.安全管理.文件管理等. 4.OS通用目的的软件程序:用户<-->应 ...
- C#string byte[] base64位互相转换
byte表示字节,byte[]则表示存放一系列字节的数组 1个字符=2个字节(byte) 1个字节=8个比特(bit) 网速上所说的1M其实是指1兆的小b,1M= 1024b/8 = 128kb 下面 ...
- 使用jQuery实现option的上移和下移
基本思路: 上移:(1)获取当前选中的元素的索引值 (2)判断当前元素是否为第一个元素 (3)如果是,则不执行上移操作,如果不是,则则调用ins ...
- 解决ssh连接linux系统特别慢的问题
新安装的centos系统,发现ssh连接很慢,因为是测试环境,对安全的要求不高,所以完全可以更快的连接,下面一起来解决这个问题. 一.分析主要原因: 1.SSH的反向DNS解析会消耗大量时间 2.GS ...
- ios之coredata(一)
下面开始学习一下CoreData. Core Data不是一个关系型数据库,也不是关系型数据库管理系统(RDBMS).Core Data 为数据变更管理.对象存储.对象读取恢复的功能提供了支持. 它可 ...
- kali linux 安装TIM or QQ(CrossOver 安装 QQ)
需要文件 http://www.crossoverchina.com/xiazai.html dpkg --add-architecture i386 apt-get update apt-get i ...
- 通过xshell在linux上安装mysql5.7(终极版)
通过xshell在linux上安装mysql5.7(终极版) 0)通过xshell连接到远程服务器 1)彻底删除原来安装的mysql 首先查看:rpm -qa|grep -i mysql 删除操作(一 ...