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 ...
随机推荐
- Codeforces 374 C Inna and Dima (DFS)
Inna and Dima 题意:从图上的任意一个D点按着DIMADIMA的顺序走,问一共可以经过多少个DIMA,如果经过0个DIMA就输出“Pool DIma!“,如果可以有无数多个DIMA就输出” ...
- codeforces #583 problem D(搜索好题)
题目大意:在一个已经有障碍的地图上,设置尽可能少的障碍使得(1,1)无法到达(n,m),行进路线位向下或向右. 数据范围:n*m<=1e6 解题思路:答案一定是小于等于2的,因为可以直接阻碍(1 ...
- yzoj P1948 取数字问题
题意 sb题目,不多说,爆搜就能过. 代码 #include<bits/stdc++.h> using namespace std; int n,m,ans=1<<30,a[1 ...
- 060 Python必备库-从数据处理到人工智能
目录 一.概述 1.1 从数据处理到人工智能 二.Python库之数据分析 2.1 numpy 2.2 pandas 2.3 scipy 三.Python库之数据可视化 3.1 matplotlib ...
- hadoop snapshot 备份恢复 .
1.允许创建快照 首先,在你想要进行备份的文件夹下面 执行命令,允许该文件夹创建快照 hdfs dfsadmin -allowSnapshot <path> 例如:hdfs dfsadmi ...
- JAVA面试问题与解答(1-15)
Q1.内部类和子类之间有什么区别? Ans:Inner类是嵌套在另一个类中的类.内类具有嵌套它的类的访问权限,并且它可以访问外部类中定义的所有变量和方法. 子类是从另一个名为super class的类 ...
- opencv中IplImage* src = cvLoadImage,错误
在调试这段代码时 IplImage* src = cvLoadImage("D:\\图像\\已处理 - 11.26\\1.jpg", 1); 提示一下错误 引发了异常: 读取访问权 ...
- Linux 笔记 - 第八章 文档的打包与压缩
博客地址:http://www.moonxy.com 一.前言 在 Linux 系统中,文件的后缀名没有实际的意义,加或者不加都无所谓.但是为了便于区分,我们习惯在定义文件名时加一个后缀名,比如常见的 ...
- Phpstudy被暴存在隐藏后门-检查方法
Phpstudy被暴存在隐藏后门-检查方法 一.事件背景 Phpstudy软件是国内的一款免费的PHP调试环境的程序集成包,通过集成Apache.PHP.MySQL.phpMyAdmin.ZendOp ...
- linux切换jdk
一.安装openjdk yum search openjdk yum install java-1.8.0-openjdk-devel-debug.x86_64 二.查询java版本 alternat ...