zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    关于OC中.m文件下实现私有变量的方法,在.h文件下实现公有变量的方法
    mac中安装homebrew
    ios架构
    github命令记录
    Unity 游戏框架搭建 MonoBehaviour单例的模板
    Unity 游戏框架搭建 单例的模板
    unity 单列
    简单工厂与工厂
    NGUI动态播放视频
    在一个GameObject上进行多个AudioSource的控制
  • 原文地址:https://www.cnblogs.com/miaoliangJUN/p/11881498.html
Copyright © 2011-2022 走看看