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 ...
随机推荐
- 第二章(Kotlin基础)
基本要素:函数和变量 函数 函数定义规则 函数通过关键字 fun 用来声明一个函数 参数的类型与函数返回类型写在它的名称后面,这和变量声明一样 函数可以定义在文件的最外层,不一定要把它放在类中 示例: ...
- 章节十六、7-DataProviders
一.当我们的同一个test有多套数据需要进行测试,那么我们就需要用到-->DataProviders package testclasses1; import org.testng.annota ...
- ORM之Dapper运用
一.前言 上一篇[分层架构设计]我们已经有了架构的轮廓,现在我们就在这个轮廓里面造轮子.项目要想开始,肯定先得确定ORM框架,目前市面上的ORM框架有很多,对于.net人员来说很容易就想到以ADO.N ...
- NGUI_基础入门学习
目录 1. Control Widgets 控制部件2. Anchors 锚3. Interaction 交互4. Menu 菜单5. Controller Input 控制器的输入6. Lights ...
- Webdriver元素定位的方法
webdriver提供了8种元素定位方法: 1.id 2.name 3.tag name 4.class name 5.link text 6.partial link text 7.xpath 8. ...
- 网关高可用之keepavlived全流程(安装/配置/验证/解析)
1.场景描述 因为要做网关的高可用,用到了keepalived+nginx,来保证nginx的高可用.(微服务时代之网关及注册中心高可用架构设计),如下图: 安装了keepavlived,走了一些弯路 ...
- java语言的开发环境
1.Java EE和Java SE Java SE(Java Platform Standard Edition)标准版:是在java基础阶段主要学习的内容,该技术是java的最核心技术,适合小 ...
- C# 栈的应用
栈的特性:后进先出(LIFO) 回文判断 类似123321,123a321即为回文 思路: 将字符串前一半入栈 依次弹出栈与字符串后一半比较 public static bool IsPlalindr ...
- Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器
一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...
- Qt线程实现分析-moveToThread vs 继承
最近抽空研究了下QThread,使用起来方式多种多样,但是在使用的同时,我们也应该去了解Qt的线程它到底是怎么玩儿的. Qt的帮助文档里讲述了2种QThread的使用方式,一种是moveToThrea ...