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. T-sql中的三种分页查询

    USE [APS_Future_FT] GO /****** Object: StoredProcedure [dbo].[A_PagingAndSorting] Script Date: 2013/ ...

  2. python-二维数组实现90度旋转

    本篇主要介绍了对一个N*N的数组,如果进行90度的旋转 首先,定义一个一维数组很简单,如下: a = [i for i in range(10)] print(a) -----结果----- 0, 1 ...

  3. java连接数据库增删改查公共方法

    package dao; import java.io.IOException; import java.sql.CallableStatement; import java.sql.Connecti ...

  4. stm32之remap

    1.GPIO的重映射属于AFIO,不同类型不同引脚数单片机情况不一样,比如下图: 2.AFIO 下面还分default/Remap,如果用到了remap就得使用: GPIO_PinRemapConfi ...

  5. Flex布局(一)flex-direction

    采用Flex布局的元素,被称为Flex容器(flex container),简称"容器".其所有子元素自动成为容器成员,成为Flex项目(Flex item),简称"项目 ...

  6. NLP语言模型

    语言模型: I. 基本思想 区别于其他大多数检索模型从查询到文档(即给定用户查询,如何找出相关的文档), 语言模型由文档到查询,即为每个文档建立不同的语言模型,判断由文档生成用户查 询的可能性有多大, ...

  7. BZOJ1023: [SHOI2008]cactus仙人掌图(仙人掌dp)

    Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3467  Solved: 1438[Submit][Status][Discuss] Descripti ...

  8. 为什么有时候binlog文件会很大于max_binlog_size以及max_binlog_cache_size

    问题描述 线上一个很有意思的现象,发现binlog文件大小是15G,查看了参数max_binlog_size是1073741824[1G], max_binlog_cache_size是2147483 ...

  9. 爬取豆瓣电影Top250

    1 import json import requests from requests.exceptions import RequestException import re import time ...

  10. Asp.Net Core使用Log4Net优化日志【项目开源】

    我在前一篇文章中介绍了一种使用Log4Net的方法,但是那种方法打出来的日志不是很直观 然后我前不久阅读了一篇非常不错的博客:https://www.cnblogs.com/guolianyu/p/9 ...