go——beego的数据库增删改查
一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到:
go与beego的关系就好比是nodejs与thinkjs的关系,因此也就不怎么存在疑问为什么还要继续安装beego来完成项目运行了,beego其实就是一个快速开发Go应用的http框架,go 语言方面技术大牛,可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架。再次附上beego的官网(http://beego.me/docs/intro/)
接着开始我们的数据库“增删改查”操作吧!
1.golang本身没有提供连接MySQL的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动,更新维护都比较好;先要下载驱动,在cmd中执行
- go get github.com/go-sql-driver/mysql
2.创建测试数据库(我们一直在用的Navicat,就用它做例子)
- CREATE DATABASE golang;
- CREATE TABLE IF NOT EXISTS `golang`.`user` (
- `userid` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户编号',
- `username` VARCHAR(45) NOT NULL COMMENT '用户名称',
- `userage` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户年龄',
- `usersex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户性别',
- PRIMARY KEY (`userid`))
- ENGINE = InnoDB
- AUTO_INCREMENT = 1
- DEFAULT CHARACTER SET = utf8
- COLLATE = utf8_general_ci
- COMMENT = '用户表'
3.连接数据库:数据库连接使用datebase/sql Open函数进行连接
- db, err := sql.Open("mysql", "user:password@tcp(localhost:5555)/dbname?charset=utf8")
- 其中连接参数可以有如下几种形式:
- user@unix(/path/to/socket)/dbname?charset=utf8
- user:password@tcp(localhost:5555)/dbname?charset=utf8
- user:password@/dbname
- user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname
一般,大家都使用第二种。
4.在liteIDE中写程序,完整代码如下:
- package main
- import (
- _ "crud/routers"
- "database/sql"
- "fmt"
- _ "github.com/go-sql-driver/mysql"
- )
- func main() {
- query()
- }
- //增加数据
- func insert() {
- db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
- checkErr(err)
- stmt, err := db.Prepare(`INSERT user (userid,username,userage,usersex) values (?,?,?,?)`)
- checkErr(err)
- res, err := stmt.Exec(1, "Mary", 20, 1)
- checkErr(err)
- id, err := res.LastInsertId()
- checkErr(err)
- fmt.Println(id)
- }
- //删除数据
- func remove() {
- db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
- checkErr(err)
- stmt, err := db.Prepare(`DELETE FROM user WHERE userid=?`)
- checkErr(err)
- res, err := stmt.Exec(1)
- checkErr(err)
- num, err := res.RowsAffected()
- checkErr(err)
- fmt.Println(num)
- }
- //更新数据
- func update() {
- db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
- checkErr(err)
- stmt, err := db.Prepare(`UPDATE user SET userage=?,usersex=? WHERE userid=?`)
- checkErr(err)
- res, err := stmt.Exec(21, 2, 2)
- checkErr(err)
- num, err := res.RowsAffected()
- checkErr(err)
- fmt.Println(num)
- }
- //查询数据
- func query() {
- db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
- checkErr(err)
- rows, err := db.Query("SELECT * FROM user")
- checkErr(err)
- // //普通demo
- for rows.Next() {
- var userid int
- var username string
- var userage int
- var usersex int
- rows.Columns()
- err = rows.Scan(&userid, &username, &userage, &usersex)
- checkErr(err)
- fmt.Println(userid)
- fmt.Println(username)
- fmt.Println(userage)
- fmt.Println(usersex)
- }
- }
- func checkErr(err error) {
- if err != nil {
- panic(err)
- }
- }
于是就在这个表里进行增删改查了……
我并没有使用beego中的orm框架,是因为刚开始在看的时候忽略了orm。。。。。。。有点小疏忽,,,明天再研究。
go——beego的数据库增删改查的更多相关文章
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- WindowsPhone8 数据库增删改查
今天第一次在博客园发表文章,如果有的地方写的不对,还请大家指出! 1.这就是一个简单wp8数据库增删改查 1.创建数据表Person [Table] public class Person : INo ...
- MVC——数据库增删改查(Razor)——Html语法
一.显示界面 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); public List<Info> ...
- MVC——数据库增删改查(Razor)
一.显示信息 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); //定义一个变量取出所有数据 public L ...
- MVC——数据库增删改查(aspx)
MVC: V(View) :视图→就是页面的模板 C(Control): 控制器→客户主要面对的就是控制器, M(Model):模板→在模板里面主要就是写关于数据库的各种增删改查的方法 它们之间的关系 ...
- Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)
接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...
随机推荐
- Python数据类型之列表
一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list (元素的集合) 列表用[] 元祖:tuple 元祖用() 字典:dict注:所有的数据类 ...
- Using SSH on Linux
This document covers the SSH client on the Linux Operating System and other OSes that use OpenSSH. W ...
- Git与Repo入门(转载)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAykAAADuCAIAAACyDd+sAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu ...
- 纯css3样式属性制作各种图形图标
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mysql 大数据量的处理
insert 1.过滤一段时间内重复的数据2.数据缓存起来,批量写入 select1.使用分区表2.主主复制,连接不同的mysql3.建立索引4.定时求平均值,写入一个新的表中
- HTML5Canvas标签
- C++中的虚继承 & 重载隐藏覆盖的讨论
虚继承这个东西用的真不多.估计也就是面试的时候会用到吧.. 可以看这篇文章:<关于C++中的虚拟继承的一些总结> 虚拟基类是为解决多重继承而出现的. 如:类D继承自类B1.B2,而类B1. ...
- git本地文件回滚操作
今天有几个文件改在了其他分支上.需要回滚. 参考了下面两篇文章: Link Link 简单讲,分多个不同的阶段: 1. 用git status命令看,发现是unstaged,那么就是只在work ...
- Android Contacts (android通讯录读取)-content provider
Content Provider 在数据处理中,Android通常使用Content Provider的方式.Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据 ...
- Java集合的Stack、Queue、Map的遍历
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...