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. codeforces 873 D. Merge Sort(分治)

    题目链接:http://codeforces.com/contest/873/problem/D 题解:这题挺简单的,除了一开始算作是调用到一次,然后每次执行操作时都会调用2次,所以最多调用几次就很好 ...

  2. J farm

    #include<iostream> #include<vector> #include<algorithm> #include<cstring> #i ...

  3. PAT L3-017. 森森快递

    L3-017. 森森快递 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 俞勇(上海交通大学) 森森开了一家快递公司,叫森森快递.因为 ...

  4. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?

    相信大家已经对 kafka 的基本概念已经有一定的了解了,下面直接来分析一下 ISR 和 AR 的概念. ISR and AR 简单来说,分区中的所有副本统称为 AR (Assigned Replic ...

  5. react-router url参数更新 但是页面不更新的解决办法

    今天发现, 当使用react-router(v4.2.2)时,路由需要传入参数, 但是如果路由跳转时,url仅仅改变的是参数部分,如从hello/1跳转到hello/2,此时虽然参数更新了,但是页面是 ...

  6. cve_2019_0708_bluekeep复现采坑

    0X01 简介 Microsoft Windows是美国微软公司发布的视窗操作系统.远程桌面连接是微软从Windows 2000 Server开始提供的功能组件. 2019年5月14日,微软发布了月度 ...

  7. springmvc——@InitBinder注解

    转自http://www.cnblogs.com/douJiangYouTiao888/p/6765220.html 有些类型的数据是无法自动转换的,比如请求参数中包含时间类型的数据,无法自动映射到C ...

  8. 1.mssql和mysql sql如何调优?

    mssql是指微软的SQL Server数据库服务器. mssql常见的调优方法主要分为两类, (1)代码优化,代码优化,我搜集常用到的有以下几点: 1.避免使用select *  语句 2.避免关联 ...

  9. .NET Core 3.0 Preview 9 发布

    翻译自官方博客 今天,我们宣布推出.NET Core 3.0 Preview 9.就像预览版8一样,我们专注打磨最终版本的.NET Core 3.0,而不是添加新功能.如果这些最终版本看起来不像早期预 ...

  10. GridView和ImageSwitcher以及ImageView

    网格布局GridView和Listview很相似,只不过前者是多列的.如果把GridView的android:numColumns设置为1,他就是ListView了. 通过GridView和Image ...