beego之操作model

1.环境配置

  1>.下载安装orm

    go get github.com/astaxie/beego/orm

    默认安装路径在gopath路径下,可使用go env查看路径

  2>.导入mysql包

    

2..在controller目录下创建一个TestMode.go控制器

  1>.代码

package controllers

import (
"fmt" "github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
) //model的表示UserTable,操作数据库中的表名叫user_table
type UserTable struct {
Id int64
Username string
Password string
}
type TestModelController struct {
beego.Controller
} func (c *TestModelController) Get() {
//注册数据库
//参数一:默认default
//参数二:数据库类型MySQL
//参数三:数据库用户名:密码@tcp(ip:port)/数据库名?charset=utf8为字符编码格式
//参数四:超时时间
orm.RegisterDataBase("default", "mysql", "test:test@tcp(192.168.5.200:3306)/testdb?charset=utf8", )
//注册UserTabele表
orm.RegisterModel(new(UserTable)) //申明对象
o := orm.NewOrm()
//设置数据
//user := UserTable{Username: "xiaoming", Password: "123456"}
//插入数据
//id, err := o.Insert(&user) //读取数据
u := UserTable{Id: }
err := o.Read(&u)
if err == orm.ErrNoRows {
fmt.Println("查询不到")
} else if err == orm.ErrMissPK {
fmt.Println("找不到主键")
} else {
fmt.Println(u.Id, u.Username)
}
//修改数据
u.Username = "Xiao Hua"
u.Password = ""
o.Update(&u) //web上显示内容
//c.Ctx.WriteString(fmt.Sprintf("id: %d err: %v", id, err)) //自带原生读取函数
var maps []orm.Params
o.Raw("select *from user_table").Values(&maps) for _, v := range maps { c.Ctx.WriteString(fmt.Sprintf("user_table: %v\n", v))
} }

  2>.数据操作方法以及go中结构体和数据库中的表格对应关系

3.在routers目录下添加对应路由

4.mysql设置

  1>.进入数据库 mysql -u 用户名 -p

    下面是以root用户登录的

  2>.我这里首先建立新的用户testdb,对应代码中对应

    可以使用 下面命令,查看用户列表

      select user, host from mysql.user;

    创建新用户,用户名test 密码test

    use mysql   

    create user test identified by 'test' ;

    flush privileges    //刷新

    select user, host from mysql.user;   //查看用户

  3>.创建数据库

    create database testdb; 和代码中对应

    flush privileges;    //刷新

    show databases;

  4>.设置权限  为user用户赋予操作数据库testdb的所有权限

    grant all privileges on testdb.* to test identified by 'test';

  5>.退出,

    quit;

  6>.使用test用户登录

    mysql -u test -p

    查看数据库

      show databases;

    查看表格

      show tables;

  7>.创建表格user_table,三个参数id、username、password  

    create table user_table( id int(11) auto_increment, username varchar(32),password varchar(128),primary key(id));

    参考链接:https://www.yiibai.com/mysql/mysql_create_tables.html

语法:

  8.查看表格

    desc user_table;

5.运行程序查看效果

  

  浏览器效果,表明插入成功

  查看数据库表格中数据

    select *from user_table;

注:参考文件

 https://beego.me/docs/mvc/model/orm.md

beego之操作model的更多相关文章

  1. Go语言之高级篇beego框架之model设计构造查询

    一.model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器.在不影响代码可读性的前提下用来快速的建立 SQL 语句. QueryBuilder 在功能上与 ORM ...

  2. beego——模型(model)

    beego ORM是一个强大的Go语言ORM框架.她的灵感主要来自Django ORM和SQLAlchemy. 已经支持的数据库驱动: MySQL:https://github.com/go-sql- ...

  3. 2. 数据库文件配置与简单操作 Model / M()

    官方文档说明位置: Thinkphp/Conf/convention.php 内容说明如下: 'DB_TYPE' => '', // 数据库类型 'DB_HOST' => '', // 服 ...

  4. beego orm操作mysql数据库

    慢慢弄起来~~ 按官方操作文档试一下. 那个err重复和user编号问题,以后再弄.. package main import ( "fmt" "github.com/a ...

  5. TP5单例模式操作Model

    tp5单例模式的代码实现 为什么要使用单例模式 使用单例模式实现逻辑处理与数据库操作分离能很大提升mysql的sql处理能力,并且易于维护 ArticleModel.php <?php name ...

  6. Django操作model时刻,一个错误:AttributeError:’ProgrammingError’ object has no attribute ‘__traceback__’

    原因:在Django项目下对应的应用以下的models.py配置的model(也就是class)没有创建成对应的表. 这是怎么回事呢? 首先,将models.py里面的model创建成相应的数据库表的 ...

  7. Mac iOS Json 操作Model to JSON

    在移动网络时代,json成为了主流的数据交换格式.如何能够方便快捷的创建.转化.传递json文件称为了开发者必备的技能.幸好,我们生活在开源时代,很多功能不需要我们重现造轮子.今天我推荐一款开源jso ...

  8. Python3之外部文件调用Django程序操作model等文件实现

    import os import sys import django sys.path.append(r'C:\Users\Administrator\PycharmProjects\your pro ...

  9. 03: Django Model数据库操作

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

随机推荐

  1. 第二章(Kotlin基础)

    基本要素:函数和变量 函数 函数定义规则 函数通过关键字 fun 用来声明一个函数 参数的类型与函数返回类型写在它的名称后面,这和变量声明一样 函数可以定义在文件的最外层,不一定要把它放在类中 示例: ...

  2. 章节十六、7-DataProviders

    一.当我们的同一个test有多套数据需要进行测试,那么我们就需要用到-->DataProviders package testclasses1; import org.testng.annota ...

  3. ORM之Dapper运用

    一.前言 上一篇[分层架构设计]我们已经有了架构的轮廓,现在我们就在这个轮廓里面造轮子.项目要想开始,肯定先得确定ORM框架,目前市面上的ORM框架有很多,对于.net人员来说很容易就想到以ADO.N ...

  4. NGUI_基础入门学习

    目录 1. Control Widgets 控制部件2. Anchors 锚3. Interaction 交互4. Menu 菜单5. Controller Input 控制器的输入6. Lights ...

  5. Webdriver元素定位的方法

    webdriver提供了8种元素定位方法: 1.id 2.name 3.tag name 4.class name 5.link text 6.partial link text 7.xpath 8. ...

  6. 网关高可用之keepavlived全流程(安装/配置/验证/解析)

    1.场景描述 因为要做网关的高可用,用到了keepalived+nginx,来保证nginx的高可用.(微服务时代之网关及注册中心高可用架构设计),如下图: 安装了keepavlived,走了一些弯路 ...

  7. java语言的开发环境

    1.Java  EE和Java  SE Java SE(Java  Platform Standard Edition)标准版:是在java基础阶段主要学习的内容,该技术是java的最核心技术,适合小 ...

  8. C# 栈的应用

    栈的特性:后进先出(LIFO) 回文判断 类似123321,123a321即为回文 思路: 将字符串前一半入栈 依次弹出栈与字符串后一半比较 public static bool IsPlalindr ...

  9. Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器

    一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...

  10. Qt线程实现分析-moveToThread vs 继承

    最近抽空研究了下QThread,使用起来方式多种多样,但是在使用的同时,我们也应该去了解Qt的线程它到底是怎么玩儿的. Qt的帮助文档里讲述了2种QThread的使用方式,一种是moveToThrea ...