一直都不理解使用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中执行

  1. go get github.com/go-sql-driver/mysql

2.创建测试数据库(我们一直在用的Navicat,就用它做例子)

  1. CREATE DATABASE golang;
  2. CREATE TABLE IF NOT EXISTS `golang`.`user` (
  3. `userid` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户编号',
  4. `username` VARCHAR(45) NOT NULL COMMENT '用户名称',
  5. `userage` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户年龄',
  6. `usersex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户性别',
  7. PRIMARY KEY (`userid`))
  8. ENGINE = InnoDB
  9. AUTO_INCREMENT = 1
  10. DEFAULT CHARACTER SET = utf8
  11. COLLATE = utf8_general_ci
  12. COMMENT = '用户表'

3.连接数据库:数据库连接使用datebase/sql Open函数进行连接

  1. db, err := sql.Open("mysql", "user:password@tcp(localhost:5555)/dbname?charset=utf8")
  2. 其中连接参数可以有如下几种形式:
  3. user@unix(/path/to/socket)/dbname?charset=utf8
  4. user:password@tcp(localhost:5555)/dbname?charset=utf8
  5. user:password@/dbname
  6. user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname

一般,大家都使用第二种。

4.在liteIDE中写程序,完整代码如下:

  1. package main
  2.  
  3. import (
  4. _ "crud/routers"
  5. "database/sql"
  6. "fmt"
  7.  
  8. _ "github.com/go-sql-driver/mysql"
  9. )
  10.  
  11. func main() {
  12. query()
  13. }
  14.  
  15. //增加数据
  16. func insert() {
  17. db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
  18. checkErr(err)
  19.  
  20. stmt, err := db.Prepare(`INSERT user (userid,username,userage,usersex) values (?,?,?,?)`)
  21. checkErr(err)
  22. res, err := stmt.Exec(1, "Mary", 20, 1)
  23. checkErr(err)
  24. id, err := res.LastInsertId()
  25. checkErr(err)
  26. fmt.Println(id)
  27. }
  28.  
  29. //删除数据
  30. func remove() {
  31. db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
  32. checkErr(err)
  33.  
  34. stmt, err := db.Prepare(`DELETE FROM user WHERE userid=?`)
  35. checkErr(err)
  36. res, err := stmt.Exec(1)
  37. checkErr(err)
  38. num, err := res.RowsAffected()
  39. checkErr(err)
  40. fmt.Println(num)
  41. }
  42.  
  43. //更新数据
  44. func update() {
  45. db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
  46. checkErr(err)
  47.  
  48. stmt, err := db.Prepare(`UPDATE user SET userage=?,usersex=? WHERE userid=?`)
  49. checkErr(err)
  50. res, err := stmt.Exec(21, 2, 2)
  51. checkErr(err)
  52. num, err := res.RowsAffected()
  53. checkErr(err)
  54. fmt.Println(num)
  55. }
  56.  
  57. //查询数据
  58. func query() {
  59. db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
  60. checkErr(err)
  61.  
  62. rows, err := db.Query("SELECT * FROM user")
  63. checkErr(err)
  64.  
  65. // //普通demo
  66. for rows.Next() {
  67. var userid int
  68. var username string
  69. var userage int
  70. var usersex int
  71.  
  72. rows.Columns()
  73. err = rows.Scan(&userid, &username, &userage, &usersex)
  74. checkErr(err)
  75.  
  76. fmt.Println(userid)
  77. fmt.Println(username)
  78. fmt.Println(userage)
  79. fmt.Println(usersex)
  80. }
  81. }
  82. func checkErr(err error) {
  83. if err != nil {
  84. panic(err)
  85. }
  86.  
  87. }

于是就在这个表里进行增删改查了……

我并没有使用beego中的orm框架,是因为刚开始在看的时候忽略了orm。。。。。。。有点小疏忽,,,明天再研究。

go——beego的数据库增删改查的更多相关文章

  1. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  2. 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查

    一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...

  3. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  4. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  5. WindowsPhone8 数据库增删改查

    今天第一次在博客园发表文章,如果有的地方写的不对,还请大家指出! 1.这就是一个简单wp8数据库增删改查 1.创建数据表Person [Table] public class Person : INo ...

  6. MVC——数据库增删改查(Razor)——Html语法

    一.显示界面 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); public List<Info> ...

  7. MVC——数据库增删改查(Razor)

    一.显示信息 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); //定义一个变量取出所有数据 public L ...

  8. MVC——数据库增删改查(aspx)

    MVC: V(View) :视图→就是页面的模板 C(Control): 控制器→客户主要面对的就是控制器, M(Model):模板→在模板里面主要就是写关于数据库的各种增删改查的方法 它们之间的关系 ...

  9. Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)

    接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...

随机推荐

  1. Python数据类型之列表

    一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list (元素的集合) 列表用[] 元祖:tuple 元祖用() 字典:dict注:所有的数据类 ...

  2. Using SSH on Linux

    This document covers the SSH client on the Linux Operating System and other OSes that use OpenSSH. W ...

  3. Git与Repo入门(转载)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAykAAADuCAIAAACyDd+sAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu ...

  4. 纯css3样式属性制作各种图形图标

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. mysql 大数据量的处理

    insert 1.过滤一段时间内重复的数据2.数据缓存起来,批量写入 select1.使用分区表2.主主复制,连接不同的mysql3.建立索引4.定时求平均值,写入一个新的表中

  6. HTML5Canvas标签

     

  7. C++中的虚继承 & 重载隐藏覆盖的讨论

    虚继承这个东西用的真不多.估计也就是面试的时候会用到吧.. 可以看这篇文章:<关于C++中的虚拟继承的一些总结> 虚拟基类是为解决多重继承而出现的. 如:类D继承自类B1.B2,而类B1. ...

  8. git本地文件回滚操作

    今天有几个文件改在了其他分支上.需要回滚. 参考了下面两篇文章: Link    Link 简单讲,分多个不同的阶段: 1. 用git status命令看,发现是unstaged,那么就是只在work ...

  9. Android Contacts (android通讯录读取)-content provider

    Content Provider 在数据处理中,Android通常使用Content Provider的方式.Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据 ...

  10. Java集合的Stack、Queue、Map的遍历

    Java集合的Stack.Queue.Map的遍历   在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...