beego框架之orm模块

  参考beego原文:http://beego.me/docs/mvc/model/orm.md#main.go

  beego ORM 是一个强大的 Go 语言 ORM 框架,orm模块主要是处理MVC中的M(models)。

  首先以bee工具创建一工程名为:beegoorm,修改的文件为 beegoorm/main.go 和 beegoorm/models/models.go(仅2个文件)

beegoorm/models/models.go

package models

import (
    "github.com/astaxie/beego/orm"
)

type User struct {
    Id          int
    Name    string
    Profile *Profile `orm:"rel(one)"` // OneToOne relation
}

type Profile struct {
    Id     int
    Age  int16
    User *User `orm:"reverse(one)"` // 设置反向关系(可选)
}

func init() {
    // 需要在 init 中注册定义的 model
    orm.RegisterModel(new(User), new(Profile))
}

beegoorm/main.go

package main

import (
    "beegoorm/models"
    "fmt"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"

    _ "beegoorm/routers"
    _ "github.com/go-sql-driver/mysql"
)

func init() {
    // 注册驱动
    orm.RegisterDriver("mysql", orm.DR_MySQL)
    // 注册默认数据库
    // 我的mysql的root用户密码为tom,打算把数据表建立在名为test数据库里
    // 备注:此处第一个参数必须设置为“default”(因为我现在只有一个数据库),否则编译报错说:必须有一个注册DB的别名为 default
    orm.RegisterDataBase("default", "mysql", "root:[email protected]/test?charset=utf8")
}

func main() {
    // 开启 orm 调试模式:开发过程中建议打开,release时需要关闭
    orm.Debug = true
    // 自动建表
    orm.RunSyncdb("default", false, true)

    // 创建一个 ormer 对象
    o := orm.NewOrm()
    o.Using("default")
    perfile := new(models.Profile)
    perfile.Age = 30

    user := new(models.User)
    user.Name = "tom"
    user.Profile = perfile

    // insert
    o.Insert(perfile)
    o.Insert(user)
    o.Insert(perfile)
    o.Insert(user)
    o.Insert(perfile)
    o.Insert(user)

    // update
    user.Name = "hezhixiong"
    num, err := o.Update(user)
    fmt.Printf("NUM: %d, ERR: %v\n", num, err)

    // delete
    o.Delete(&models.User{Id: 2})

    beego.Run()
}

数据库建表及数据增删改的结果如下:
数据库名:test
数据表:user,profile
user表                                                                                   profile表

        

时间: 2024-12-29 06:53:38

beego框架之orm模块的相关文章

beego框架之orm模块——sqlite

今天基于beego ORM演示sqlite3数据库时,遇到了一小问题. 问题现象1:下载go-sqlite3(go get github.com/mattn/go-sqlite3)驱动时报错说 gcc 不在 PATH 目录里. 问题现象2:运行导入了go-sqlite3驱动的文件时编译报错说 gcc 不在 PATH 目录里. 问题发生的原因:sqlitle3是个cgo库,需要gcd编译c代码. 问题的解决办法:安装tdm-gcc或Mingw.(备注:本人安装的是tdm-gcc,下载地址:http

beego框架之orm模块——PostgreSQL

beego框架默认支持三种数据库类型(MySQL,Sqlite,PostgreSQL).这三种数据库的配置虽然大同小异,但也有各自的差别.如今该总结下了. 以下是基于beego框架对PostgreSQL数据库进行操作. models/models.go 1 package models 2 3 import ( 4 "github.com/astaxie/beego/orm" 5 ) 6 7 type Student struct { 8 Id int64 9 Name string

beego框架之日志模块

参考beego开发文档:http://beego.me/docs/module/logs.md beego框架之日志模块默认支持4种记录方式: 1. 终端输出(console) :这种方式一般用在开发环境下面,方便调试. 2. 本地文件(file)       :这种方式一般用来保存常规日志,为生产环境中常用的方式. 3. 网络方式(network):这种方式可以用来将日志发送到指定服务器,一般可以用来根据日志触发事件等. 4. 发送邮件(email)   :这种方式一般是将生产环境下比较重要的

Spring之ORM模块

ORM模块对Hibernate.JDO.TopLinkiBatis等ORM框架提供支持 ORM模块依赖于dom4j.jar.antlr.jar等包 在Spring里,Hibernate的资源要交给Spring管理,Hibernate以及其SessionFactory等知识Spring一个特殊的Bean,有Spring负责实例化与销毁.因此DAO层只需要继承HibernateDaoSupport,而不需要与Hibernate的API打交道,不需要开启.关闭Hibernate的Session.Tra

golang的beego框架开发时出现的问题纪录

golang的beego框架开发时出现的问题纪录1.数据库并发时问题:[ORM]2017/02/20 23:44:05 -[Queries/default] - [FAIL / db.Query / 15.9ms] - [SELECT mp_wx_account.app_id, mp_wx_account.app_secret FROM mp_wx_develop INNER JOIN mp_wx_account ON mp_wx_account.app_id = mp_wx_develop.a

Go beego框架使用笔记(一)

Beego介绍 beego我认为是go初学者比较容易上手的一门MVC Web框架.简单易懂,最重要的一点就是提供了中文文档,这对于我这种英语能力比较差的人来说就是福音. beego的官网上是这么介绍beego的:"beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado.sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface.st

四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

Django框架,models.py模块,数据库操作--创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库. 1,django默认使用sqlite的数据库,默认自带sqlite的数据库驱动   引擎名称:django.db.backends.sqlite3 在全局配置文件settings.py可以看到确认配置使用的sqlite数据库 # Database # h

Beego 框架学习(一)

Beego官网本身已经整理的非常详细了,但是作为一个学习者,我还是决定自己好好整理一下,这样在后面使用的时候自己对每部分才能非常熟悉,即使忘记了,也可以迅速定位自己要用的知识在哪里.当然也是对官网的一个精简整理,同时结合一些例子,更好的理解和学习Beego Beego官网地址:https://beego.me 这次整理也是一个初步的整理,正好在这个之后把之前通过net/http实现的短url项目通过beego框架实现一遍 Beego的安装 go get github.com/astaxie/be

beego框架学习(一)

beego简介 Beego是一个快速开发Go应用的http框架,可用于快速开发Api.web及后端服务等各种应用,是一个RESTful框架. beego的架构 Beego由八个独立模块构建,是一个高度解耦的应用,用户可以不是用beego的http逻辑使用里面的任意模块.具体架构设计如下:  beego执行逻辑 beego是一个经典的mvc框架,它的执行逻辑如下:  与之对应的项目目录结构如下: ├── conf │ └── app.conf ├── controllers │ ├── admin