beego之操作model
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的更多相关文章
- Go语言之高级篇beego框架之model设计构造查询
一.model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器.在不影响代码可读性的前提下用来快速的建立 SQL 语句. QueryBuilder 在功能上与 ORM ...
- beego——模型(model)
beego ORM是一个强大的Go语言ORM框架.她的灵感主要来自Django ORM和SQLAlchemy. 已经支持的数据库驱动: MySQL:https://github.com/go-sql- ...
- 2. 数据库文件配置与简单操作 Model / M()
官方文档说明位置: Thinkphp/Conf/convention.php 内容说明如下: 'DB_TYPE' => '', // 数据库类型 'DB_HOST' => '', // 服 ...
- beego orm操作mysql数据库
慢慢弄起来~~ 按官方操作文档试一下. 那个err重复和user编号问题,以后再弄.. package main import ( "fmt" "github.com/a ...
- TP5单例模式操作Model
tp5单例模式的代码实现 为什么要使用单例模式 使用单例模式实现逻辑处理与数据库操作分离能很大提升mysql的sql处理能力,并且易于维护 ArticleModel.php <?php name ...
- Django操作model时刻,一个错误:AttributeError:’ProgrammingError’ object has no attribute ‘__traceback__’
原因:在Django项目下对应的应用以下的models.py配置的model(也就是class)没有创建成对应的表. 这是怎么回事呢? 首先,将models.py里面的model创建成相应的数据库表的 ...
- Mac iOS Json 操作Model to JSON
在移动网络时代,json成为了主流的数据交换格式.如何能够方便快捷的创建.转化.传递json文件称为了开发者必备的技能.幸好,我们生活在开源时代,很多功能不需要我们重现造轮子.今天我推荐一款开源jso ...
- Python3之外部文件调用Django程序操作model等文件实现
import os import sys import django sys.path.append(r'C:\Users\Administrator\PycharmProjects\your pro ...
- 03: Django Model数据库操作
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
随机推荐
- go从文件中读取json字符串并转换
go从文件中读取json字符串并转换 将要读取的文件的一部分 [ { "children": [ { "children": [ { "code&qu ...
- 逆序对 线段树&树状数组 (重制版)
逆序对的定义:长度为n的数组a,求满足i<j时a[i]>a[j]条件的数对个数. 第一次接触这种问题的人可能是更先想到的是n^2去暴力数前面有几个比他大的数. int main() { i ...
- POJ 3070 Fibonacci 矩阵快速幂模板
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18607 Accepted: 12920 Descr ...
- kick start 2019 round D T2题解
题目大意:由N个房子围成一个环,G个人分别顺时针/逆时针在房子上走,一共走M分钟,每分钟结束,每个人顺/逆时针走到相邻的房子.对于每个房子都会记录最后时刻到达的人(可能是一群人).最终输出每个人会被几 ...
- @override 重写 与重载
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现.重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多 ...
- nvm 管理多个活动的node.js版本
前序:最近在使用taro框架开发小程序,因为安装taro时遇到一些问题,后来重新安装了node版本——v10.16.3,却影响了我本地开发的项目,故此使用nvm来管理node的版本,更加灵活的切换以支 ...
- ASP.NET MVC实现依赖注入
在java的spring中有自动注入功能,使得代码变得更加简洁灵活,所以想把这个功能移植到c#中,接下来逐步分析实现过程 1.使用自动注入场景分析 在asp.net mvc中,无论是什么代码逻辑分层, ...
- javascript实现二叉搜索树
在使用javascript实现基本的数据结构中,练习了好几周,对基本的数据结构如 栈.队列.链表.集合.哈希表.树.图等内容进行了总结并且写了笔记和代码. 在 github中可以看到 点击查看,可以 ...
- 误删除系列一:linux的bin目录误删除后恢复操作
感言:一失足成千古恨,一不小心就把/usr/bin下所有的命令都删除了,当你以为自己很熟练时,当你以为自己操作对时,可能就是失手的时候,还好这次只是一个测试环境....God 恢复过程:(以下是在vs ...
- Python连载38-协程、可迭代、迭代器、生产者消费者模型
一.生产者消费者模型 import multiprocessing from time import ctime def consumer(input_q): print("Into con ...