什么是ORM

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

在mvc里面models层一般是数据库读写逻辑的封装,数据层的一个映射,我们可以通过orm映射来自动生成models的脚手架.

beego的orm模块支持三种数据库,其中就包括了mysql,这里以mysql为例子来实现orm映射.

(1)数据库库部分

  a1)连接数据库

  a2)创建数据库imooc

  a3)创建表格 user

  

  需要说明的是,如果使用的是8.0的mysql,字段的引号要去掉,5.0左右的版本需要加上.

  说一下各个参数的含义:

    NOT NULL 该字段不能为空

    AUTO_INCREMENT 插入的时候自动增加1

    DEFAULT 默认值,如果没有指定特定值,那么用这个值

    PRIMARY KEY 指定主码

    ENGINE=InnoDB 指定表的内省,相对于另一种MyISAM类型,

    区别如下原来是MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。

   MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。

    另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。

    以上解释来自:https://blog.csdn.net/weixin_30263073/article/details/99557842

    

    CHARSET=utf8 字符集使用utf8

  a4)插入几条测试数据,现在已经具备了基本的数据库功能

(2)beego部分

  a1)进入工程目录

  a2)bee generate scaffold user -fields="id:int64,name:string,gender:int,age:int" -driver=mysql -conn="root:123@tcp(127.0.0.1:3306)/imooc"

    b1)指令比较复杂,分开讲一下,generate是自动生成的意思,scaffold是脚手架的意思

    b2)user是表名,命令会生成对应的文件,文件名称就是user

    b3)-fields代表生成的实例的数据结构

    b4)-driver是所用数据库参数

    b5)-conn是连接参数"连接角色:密码@tcp(域名ip:监听端口)/数据库名称"

  a3)同意创建models,controller,view的代码,均选择yes

    

  a4)最后会问需不需要创建数据库的迁移和升级,因为暂时用不到,选择no,这个时候脚手架的功能就完成

      

(3)启动goland,查看测试一下生成的代码

  可以注意到生成controller的每个函数上面都有router注解,支持路由注解的controller不需要再去routers层注册路由,只需要在router文件里面include相应的controller,然后在controller里面需要router函数上面写上router的注释,就可以完成注册路由.

    

  a1)在router里面include UserController

    

  a2)在main.go的beego.run()上面注册orm数据库

    

  a3)有了路由之后,还需要添加orm的数据注册代码,要注意的是还需要引入mysql的包,如果没有可以参考go get命令下载go-sql-driver/mysql

  a4)启动应用,然后进入相应的测试路由,检验结果.

https://blog.csdn.net/weixin_30263073/article/details/99557842

beego框架学习--beego orm映射的更多相关文章

  1. beego框架学习(三) -orm的使用

    2 3 4 5 6 7 8 9 10 11 目前beego-orm支持的数据有: - MySQL:https://github.com/go-sql-driver/mysql - PostgreSQL ...

  2. Beego框架学习--(核心:数据交互)

    Beego框架学习记录 1.beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...

  3. Beego框架学习---layout的使用

    Beego框架学习---layout的使用 在管理系统中,管理菜单的界面是固定的,会变化的只是中间的部分.我就在想,是不是跟angular的"组件模块的router-outlet一样&quo ...

  4. Beego 框架学习(一)

    Beego官网本身已经整理的非常详细了,但是作为一个学习者,我还是决定自己好好整理一下,这样在后面使用的时候自己对每部分才能非常熟悉,及时忘记了,也可以迅速定位自己要用的知识在哪里.当然也是对官网的一 ...

  5. beego框架学习(二) -路由设置

    路由设置 什么是路由设置呢?前面介绍的 MVC 结构执行时,介绍过 beego 存在三种方式的路由:固定路由.正则路由.自动路由,接下来详细的讲解如何使用这三种路由. 基础路由 从beego1.2版本 ...

  6. Beego 框架学习(一)

    1.特性 beego是一个http框架 高性能,是目前最快的的go框架 开发快捷,组件多,高度解耦 RESTful方式,可以自定义action 文档完整 智能路由.智能监控 2.安装 go get g ...

  7. Hibernate框架学习之注解映射实体类

         前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识.然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射 ...

  8. golang利用beego框架orm操作mysql

    GO引入orm框架操作mysql 在beego框架中引入orm操作mysql需要进行的步骤: 第一步:导入orm框架依赖,导入mysql数据库的驱动依赖 import ( "github.c ...

  9. Go语言之高级篇beego框架安装与使用

    一.beego框架 1.beego框架简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...

随机推荐

  1. java架构之路-(Redis专题)简单聊聊redis分布式锁

    这次我们来简单说说分布式锁,我记得过去我也过一篇JMM的内存一致性算法,就是说拿到锁的可以继续操作,没拿到的自旋等待. 思路与场景 我们在Zookeeper中提到过分布式锁,这里我们先用redis实现 ...

  2. Linux Capabilities 入门教程:概念篇

    原文链接:Linux Capabilities 入门教程:概念篇 Linux 是一种安全的操作系统,它把所有的系统权限都赋予了一个单一的 root 用户,只给普通用户保留有限的权限.root 用户拥有 ...

  3. 推荐一款优秀的WPF开源项目

    项目介绍 此项目应用了Prism MVVM框架,项目展示数据来源于其他服务程序,使用的WebAPI通信,如果要正常运行此程序,需要您自己做一个WebAPI程序,由API接口提供数据驱动,其实直接查看代 ...

  4. C++ Qt基础知识

    时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 记录C++ Qt的基础知识学习记录 <C++ Qt设计模式(第二版)>

  5. Vue 的准备

    ## .es6的基本语法 ​ let---是局部作用于,不会存在变量提升,变量不能重复声明 ​ const--局部作用域,不会存在变量提升 不能重复声明,只声明常亮,不可变的量 ​ ```javasc ...

  6. NetworkManager网络通讯_破产版NetworkManager(五)

    根据对NetWorkServer 以及NetworkClient的理解,编写一个简易版的NetWork Manager.惯例全部代码放在最后 (一)NetWorkServer与NetworkClien ...

  7. Bigo的Java面试,我挂在了第三轮技术面上.........

    背景 前段时间家里出了点事,辞职回家待了一段时间,处理完老家的事情后就回到广州这边继续找工作,大概是国庆前几天我去面试了一家叫做Bigo(YY的子公司),面试的职位是面向3-5年的Java开发,最终自 ...

  8. python实现输入任意一个大写字母生成金字塔的示例

    输入任意一个大写字母,生成金字塔图形 def GoldTa(input): L = [chr(i) for i in range(65, 91)] # 大写字母A--Z idA = 65 # 从A开始 ...

  9. Swagger解决你手写API接口文档的痛

    首先,老规矩,我们在接触新事物的时候, 要对之前学习和了解过的东西做一个总结. 01 痛     苦 不做.不行 之前,前后端分离的系统由前端和后端不同的编写,我们苦逼的后端工程师会把自己已经写完的A ...

  10. 【长期维护】C++休闲(修仙)躲方块小游戏

    左右键控制小球左右移动,上键加速,Esc退出. 一个‘@’20分 #include <windows.h> #include <bits/stdc++.h> #include ...