beego框架学习--beego orm映射
什么是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映射的更多相关文章
- beego框架学习(三) -orm的使用
2 3 4 5 6 7 8 9 10 11 目前beego-orm支持的数据有: - MySQL:https://github.com/go-sql-driver/mysql - PostgreSQL ...
- Beego框架学习--(核心:数据交互)
Beego框架学习记录 1.beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...
- Beego框架学习---layout的使用
Beego框架学习---layout的使用 在管理系统中,管理菜单的界面是固定的,会变化的只是中间的部分.我就在想,是不是跟angular的"组件模块的router-outlet一样&quo ...
- Beego 框架学习(一)
Beego官网本身已经整理的非常详细了,但是作为一个学习者,我还是决定自己好好整理一下,这样在后面使用的时候自己对每部分才能非常熟悉,及时忘记了,也可以迅速定位自己要用的知识在哪里.当然也是对官网的一 ...
- beego框架学习(二) -路由设置
路由设置 什么是路由设置呢?前面介绍的 MVC 结构执行时,介绍过 beego 存在三种方式的路由:固定路由.正则路由.自动路由,接下来详细的讲解如何使用这三种路由. 基础路由 从beego1.2版本 ...
- Beego 框架学习(一)
1.特性 beego是一个http框架 高性能,是目前最快的的go框架 开发快捷,组件多,高度解耦 RESTful方式,可以自定义action 文档完整 智能路由.智能监控 2.安装 go get g ...
- Hibernate框架学习之注解映射实体类
前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识.然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射 ...
- golang利用beego框架orm操作mysql
GO引入orm框架操作mysql 在beego框架中引入orm操作mysql需要进行的步骤: 第一步:导入orm框架依赖,导入mysql数据库的驱动依赖 import ( "github.c ...
- Go语言之高级篇beego框架安装与使用
一.beego框架 1.beego框架简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...
随机推荐
- Java中String类的特殊性
java中特殊的String类型 Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String(&q ...
- LaTeX常用篇(三)---矩阵与表格
目录 1. 序言 2. 矩阵 2.1 复杂写法 2.2 简化写法 2.3 复杂矩阵 3. 表格 4. 对齐 更新时间:2019.10.02 1. 序言 矩阵是一个强大的工具,许多东西都能够用矩阵来 ...
- 解决SpringBatch/Cloud Task的SafeMode下的报错问题
问题描述 一般公司都有DBA,DBA极有可能开启了Safe mode,也就是不支持不带索引条件过滤的update操作. 而Spring Batch /Cloud Task就有一张表 JOB_SEQ或者 ...
- django-MVT设计模式
MVT:Models.Views.Templates Model:封装数据库,对数据库进行访问,对数据进行增删查改等. View:业务逻辑的一些操作. Templates:展示. 而MVC主要的流程如 ...
- 【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!
目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常thro ...
- 大家都说好用的 Python 命令行库:click
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- Python爬虫常用小技巧之设置代理IP
设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...
- Flask数据库基本操作
数据库基本操作 在Flak-SQLAlchemy中,插入.修改.删除操作,均由数据库会话管理. 会话用db.session表示.在准备把数据写入数据库前,需要先将数据添加到会话中然后调用commit( ...
- scss新手使用指南
还在用死的css写样式吗?那可太麻烦了,各种长串选择器不说,还有各种继承权重有时候还有可能不生效 我的小程序项目也结束了,是时候总结一下scss语法了,毕竟用起来更加方便而且还能精简一点代码,好处多多 ...
- ITester软件测试小栈,快来点击领取你的能量值!
日供一卒,功不唐捐,这不是一个非正常更新的ITester软件测试小栈,不定期分享软件测试相关,包括功能.接口.自动化.性能.专项.测试开发,简历指点,面试助攻,群而不党,和而不同,如趋同,且同行.